在ExternalStorage

时间:2016-10-17 16:52:39

标签: java android file io directory

我正在尝试在Android设备上向ExternalStorageDirectory写一些内容。为了测试这个,我尝试在这个目录中创建一个简单的文件夹。由于它没有工作,我偶然发现了this stackoverflow线程。当我使用最受欢迎的示例代码

File folder = new File(Environment.getExternalStorageDirectory() + "/map");
boolean success = true;
if (!folder.exists()) {
success = folder.mkdir();
}
if (success) {
    // Do something on success
} else {
    // Do something else on failure 
}

并设置了givven WRITE_EXTERNAL_STORAGE权限,文件夹的创建始终失败 - 没有异常,但执行后f.exists()仍为false。 我在Nexus 5X和最新Nexus 5X-Emulator

上对此进行了测试

在模拟器Environment.getExternalStorageState()中返回not-mounted虽然我挂了virtual SD-card(这对我来说似乎也很奇怪)。在我的物理设备中它返回mounted - 所以我没有看到任何问题,为什么代码不应该工作。

欢迎任何有关创建文件夹失败和/或Environment.getExternalStorageState()行为的解决方案的建议。

1 个答案:

答案 0 :(得分:0)

确保将此权限添加到最明显的文件

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

并创建像这样的文件夹

String folder_main = "map";

File f = new File(Environment.getExternalStorageDirectory(), folder_main);
if (!f.exists()) {
    f.mkdirs();
}