从SD卡读取文件的标准方法

时间:2017-10-30 09:21:21

标签: java android android-sdcard android-file

我无法找到运行所有设备并返回sdcard基本路径的方法。我找到了以下方法来获取具有过滤器“storage”的所有文件,然后检查它是否是外部文件。它在少数设备上运行良好。

File root = new File("/storage/");
    File dirs[] = root.listFiles();

    for (File dir : dirs) {
        if (Environment.isExternalStorageRemovable(dir.getAbsoluteFile())) {
            return dir.getPath();
        }
    }

现在我手里拿着一个设备,其sdcard路径是“roor / Removable / MicroSd,通过上面的代码,我无法读取这张卡片。我已经通过很多链接但是找不到标准方式。我也有试过以下,但这不会返回实际地址。

String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();

1 个答案:

答案 0 :(得分:2)

我想您希望访问可移动SDCard。获取SDCard路径的标准方法是:Context.getExternalFilesDirs()。通常SDCard路径是最后一个,您必须去掉私有子路径(Android / ...)。更好地检查SDCard是否也已安装。

String path = null;
File[] dirs = getContext().getExternalFilesDirs(null);
if (dirs!=null && Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
    path = dirs[dirs.length-1].getAbsolutePath();
    path = path.substring(0, path.indexOf("Android"));
}
 return path;