Android 4.4.2 - 读取外部SD卡目录?

时间:2014-06-18 16:39:37

标签: android

如何在Xperia Z1上读取SD卡中的文件?

Environment.getExternalStorageDirectory()指向内部记忆!

4 个答案:

答案 0 :(得分:0)

根据Environment文档,外部存储目录传统上是SD卡,但它也可以作为内置存储实现在不同于受保护的内部存储,可以作为文件系统安装在计算机上。"

此外,"如果用户已在其计算机上安装此目录,已从设备中删除或发生其他一些问题,则该目录目前可能无法访问"。

要检查外部存储目录的状态,请使用以下函数:

Environment.getExternalStorageState();

上述功能的文档可用here

您还可以通过以下功能检查外部存储器是否可拆卸(以及SD卡):

Environment.isExternalStorageRemovable();

如果外部存储是SD卡,它将返回true

编辑:

要查找设备的SD卡路径,可以使用adb shell并使用以下命令:

adb shell 'echo ${SECONDARY_STORAGE%%:*}'

Source

This thread可能暗示了一个实际的答案,许多人都对此有所冲突。

答案 1 :(得分:0)

尝试

File dirs [] = getExternalFileDirs(); 

如果还有更多,最后一张将放在可移动卡上。你只能写入外部文件dir。但是读完整张卡片。只需从前面的路径中取出... / Android /....

答案 2 :(得分:0)

您可以使用以下代码获取外部存储卡路径

String path4 = System.getenv("SECONDARY_STORAGE");

你有路径::: / storage / ExtSdCard(你的外部SD卡名称)

答案 3 :(得分:-1)

我想使用外部SD卡需要使用它:

new File("/mnt/external_sd/")

OR

new File("/mnt/extSdCard/")

在你的情况下...

替换Environment.getExternalStorageDirectory()

适合我。您应该首先检查目录mnt中的内容,然后从那里开始工作..

您应该使用某种类型的选择方法来选择使用哪个SD卡:

File storageDir = new File("/mnt/");
if(storageDir.isDirectory()){
    String[] dirList = storageDir.list();
    //TODO some type of selecton method?
}