我正在尝试向 Android 设备上的 ExternalStorageDirectory
写入内容。为了测试这一点,我尝试在此目录中创建一个简单的文件夹。由于它不起作用,我偶然发现了 this堆栈溢出线程。当我使用获得最多支持的示例代码时
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
}
并设置给定的WRITE_EXTERNAL_STORAGE
权限,文件夹的创建总是失败——没有异常(exception),但执行f.exists()
后仍然是false
。
我在我的 Nexus 5X
和最新的 Nexus 5X-Emulator
上对此进行了测试。
在模拟器中,Environment.getExternalStorageState()
返回not-mounted
,尽管我安装了虚拟SD卡
(这对我来说也很奇怪)。在我的物理设备中,它返回 mounted
- 所以我没有看到任何问题,为什么代码不应该工作。
欢迎就解决文件夹创建失败和/或 Environment.getExternalStorageState()
的行为提供任何建议。
最佳答案
确保将此权限添加到 list 文件中
<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();
}
关于java - 在外部存储中创建文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40091749/