【问题标题】:How to create a new folder in android?如何在android中创建一个新文件夹?
【发布时间】:2018-10-14 09:08:36
【问题描述】:

我想在外部存储中创建一个新文件夹。我使用此代码:

            val folderMain = "name"

        val f = File(getExternalStorageDirectory(), folderMain)
        if (!f.exists()) {
            f.mkdirs()
        }

执行后,它会在内部存储中创建一个新文件夹,而不是在外部存储中。如何在外部存储中创建新文件夹?

我 100% 确定我的设备中有外部存储,它有 14 GB 可用空间,位置是 /storage/extSdCard

我在两部三星手机 Android 版 jellybean 和 Kitkat 上测试了这段代码,但结果相同。

【问题讨论】:

  • 文件 file3 = new File(Environment.getExternalStorageDirectory()+"/NewFolder/");
  • Android 使用了一些不同的存储术语,所以澄清一下:当您说外部存储时,您是指 android 术语(共享存储)还是外部 SD 卡?
  • Create folder in Android的可能重复
  • 是的,我想在 sdcard 中创建一个新文件夹。@Zoe
  • @mehrdadSs 我已经尝试过您给出的代码,但它会在内部存储中创建一个名为“NewFolder”的新文件夹,而不是在我设备的外部存储中。

标签: java android kotlin storage android-storage


【解决方案1】:

您可以在这里找到问题的答案:

https://developer.android.com/training/data-storage

我也建议你检查mkdirs()的结果:

if (!f.exists() && !f.mkdirs()) {
    Log.e("mDebug", "Couldn't create " + f.getName());
}

【讨论】:

  • 是的,我已经尝试过这段代码,但它仍然在内部而不是在外部 sd 卡中创建一个新文件夹
【解决方案2】:

执行后它会工作并在内部存储中创建一个新文件夹,而不是在外部存储中。

不,它会在 Android SDK 所指的 external storage 中创建文件。

我 100% 确定我的设备中有外部存储,它有 14 GB 可用空间,位置是 /storage/extSdCard。

代表removable storage

如何在外部存储中创建新文件夹?

您现有的代码会在外部存储的根目录中创建一个目录。您无法写入可移动存储上的任意位置。

在可移动存储上写入的最简单位置是由Context 上的getExternalFilesDirs()getExternalCacheDirs()getExternalMediaDirs() 方法提供的位置。如果它们返回 2 个以上的位置,则第二个和后续位置位于可移动存储上,并且您对它们具有完全的读/写访问权限。

【讨论】:

  • :如何在android中找到sdcard来创建新文件夹?
  • @MIbrarRaza:我在回答中提到了这一点——见最后一段。您无权访问整个“sdcard”。
【解决方案3】:

试试这个代码:

String fileName = "myfile.zip";
    File ZIP_Directory = new File("/sdcard/MOBstate/");
    ZIP_Directory.mkdirs();        
     File outputFile = new File(PDF_Directory, fileName);
     FileOutputStream fos = new FileOutputStream(outputFile);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    • 2013-06-13
    • 2020-04-27
    相关资源
    最近更新 更多