java - 在外部存储中创建文件夹

标签 java android file io directory

我正在尝试向 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/

相关文章:

java - 在 Java 中处理 HTTP 调用的大文件

c++ - 根据文件中的指令编写一个字符数组

java - Servlet spring-servlet 不可用(Spring+BlazeDS 集成)

android - 在图书馆中使用 Dagger 2 是否可取

android - 我想在中心裁剪后将我的图像缩放到底部

android - 无法在自定义适配器中通过 ID 引用布局对象

validation - Unix 文件名中应限制哪些字符?

java - 如何使用 httppost FileEntity 与 PHP 服务器一起上传文件

java - LibGDX 和 Java 8 源代码兼容性

java - 哈希表覆盖