我正在尝试在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()
行为的解决方案的建议。
答案 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();
}