从 SD 卡读取文件的标准方法
Standard way to read a file from sdcard
我找不到运行所有设备和 return 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,通过上面的代码我无法读取这张卡。我已经浏览了很多链接但找不到标准方法。我也尝试过以下,但这不是 return 实际地址。
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
我想您希望访问可移动 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;
我找不到运行所有设备和 return 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,通过上面的代码我无法读取这张卡。我已经浏览了很多链接但找不到标准方法。我也尝试过以下,但这不是 return 实际地址。
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
我想您希望访问可移动 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;