Android手机的SD卡路径

时间:2016-07-01 11:12:04

标签: android file-browser

我正在尝试制作文件浏览器应用。所以我想从显示这样的东西开始。

enter image description here

但我无法触及SD卡的路径。我用过这个方法

String path = Environment.getExternalStorageDirectory();

在文档here中说:

  

注意:不要被"外部"这个词弄糊涂。这里。此目录最好被视为媒体/共享存储。它是一个文件系统,可以容纳相对大量的数据,并在所有应用程序之间共享(不强制执行权限)。传统上这是一张SD卡,但它也可以作为内置存储器实现,该设备不同于受保护的内部存储器,可以作为文件系统安装在计算机上。

问题是我可以访问设备存储,但无法访问SD卡的路径。有谁知道如何走这条路?

1 个答案:

答案 0 :(得分:3)



	// Access the built-in SD card
	private String getInnerSDCardPath() {
		return Environment.getExternalStorageDirectory().getPath();
	}

	// Access to external SD card
	private List<String> getExtSDCardPath() {
		List<String> pathList = new ArrayList<String>();
		try {
			Runtime runtime = Runtime.getRuntime();
			Process proc = runtime.exec("mount");
			BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
			String line;
			while ((line = bufferedReader.readLine()) != null) {
				if (line.contains("extSdCard")) {
					String[] arr = line.split(" ");
					String path = arr[1];
					File file = new File(path);
					if (file.isDirectory()) {
						pathList.add(path);
					}
				}
			}
			bufferedReader.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return pathList;
	}
&#13;
&#13;
&#13;

我希望它可以帮到你。