- /**
- * 获取手机自身内存路径
- *
- */
- public static String getPhoneCardPath() {
- return Environment.getDataDirectory().getPath();
- }
- /**
- * 获取sd卡路径 双sd卡时,根据”设置“里面的数据存储位置选择,获得的是内置sd卡或外置sd卡
- *
- * @return
- */
- public static String getNormalSDCardPath() {
- return Environment.getExternalStorageDirectory().getPath();
- }
- /**
- * 获取sd卡路径 双sd卡时,获得的是外置sd卡
- *
- * @return
- */
- public static String getSDCardPath() {
- String cmd = "cat /proc/mounts";
- Runtime run = Runtime.getRuntime();// 返回与当前 Java 应用程序相关的运行时对象
- BufferedInputStream in = null;
- BufferedReader inBr = null;
- try {
- Process p = run.exec(cmd);// 启动另一个进程来执行命令
- in = new BufferedInputStream(p.getInputStream());
- inBr = new BufferedReader(new InputStreamReader(in));
- String lineStr;
- while ((lineStr = inBr.readLine()) != null) {
- // 获得命令执行后在控制台的输出信息
- Log.i("CommonUtil:getSDCardPath", lineStr);
- if (lineStr.contains("sdcard")
- && lineStr.contains(".android_secure")) {
- String[] strArray = lineStr.split(" ");
- if (strArray != null && strArray.length >= 5) {
- String result = strArray[1].replace("/.android_secure",
- "");
- return result;
- }
- }
- // 检查命令是否执行失败。
- if (p.waitFor() != 0 && p.exitValue() == 1) {
- // p.exitValue()==0表示正常结束,1:非正常结束
- Log.e("CommonUtil:getSDCardPath", "命令执行失败!");
- }
- }
- } catch (Exception e) {
- Log.e("CommonUtil:getSDCardPath", e.toString());
- // return Environment.getExternalStorageDirectory().getPath();
- } finally {
- try {
- if (in != null) {
- in.close();
- }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- try {
- if (inBr != null) {
- inBr.close();
- }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- return Environment.getExternalStorageDirectory().getPath();
- }
- // 查看所有的sd路径
- public String getSDCardPathEx() {
- String mount = new String();
- try {
- Runtime runtime = Runtime.getRuntime();
- Process proc = runtime.exec("mount");
- InputStream is = proc.getInputStream();
- InputStreamReader isr = new InputStreamReader(is);
- String line;
- BufferedReader br = new BufferedReader(isr);
- while ((line = br.readLine()) != null) {
- if (line.contains("secure"))
- continue;
- if (line.contains("asec"))
- continue;
- if (line.contains("fat")) {
- String columns[] = line.split(" ");
- if (columns != null && columns.length > 1) {
- mount = mount.concat("*" + columns[1] + "\n");
- }
- } else if (line.contains("fuse")) {
- String columns[] = line.split(" ");
- if (columns != null && columns.length > 1) {
- mount = mount.concat(columns[1] + "\n");
- }
- }
- }
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return mount;
- }
- // 获取当前路径,可用空间
- public static long getAvailableSize(String path) {
- try {
- File base = new File(path);
- StatFs stat = new StatFs(base.getPath());
- long nAvailableCount = stat.getBlockSize()
- * ((long) stat.getAvailableBlocks());
- return nAvailableCount;
- } catch (Exception e) {
- e.printStackTrace();
- }
- return 0;
- }
自:http://blog.youkuaiyun.com/getchance/article/details/38657195