/**
     * 获取手机自身内存路径
     * 
     */

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;
    }

更多相关文章

  1. GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
  2. 如何在后台运行Linux命令?
  3. No.11 使用firewall配置的防火墙策略的生效模式
  4. Android中调用.so库操作步骤
  5. cordova+vue构建iOS APP
  6. ADB调试命令大全
  7. 搭建android开发环境所需的工具,以及相应的下载地址
  8. 在Android中启动执行java程序
  9. android 命令行 sqlite3 not found 解决方案

随机推荐

  1. 基于PHP实现堆排序原理
  2. 最全的php数组操作方法汇总,让你轻松掌握!
  3. PHP如何实现断点续传大文件?
  4. PHP环境中使用ProtoBuf数据格式
  5. 详解PHP的反射使用
  6. 分享几个 Hyperf 常用助手函数
  7. PHP8 的 JIT 是什么?
  8. PHP实战之Redis常见7种使用场景
  9. 异步 PHP 是什么?
  10. PHP JIT 是什么?PHP8 新特性之 JIT 图文详