如何在android中创建一个新文件夹?

时间:2018-10-14 09:08:37

标签: java android kotlin storage android-storage

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

            val folderMain = "name"

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

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

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

我已经在两部三星手机Android版本的jellybean和Kitkat上测试了此代码,但结果相同。

3 个答案:

答案 0 :(得分:0)

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

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

我还建议您检查if let image = self.dictImages.object(forKey: indexPath) { cell?.newsImg.image = image as? UIImage } else{ storageRef.getData(maxSize: 1 * 1024 * 1024) { data, error in if let error = error { print(error) } else { if let data = data { let image = UIImage(data: data) self.dictImages.setObject(image, forKey: indexPath as NSCopying) cell?.newsImg.image = image } } } 的结果:

mkdirs()

答案 1 :(得分:0)

  

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

否,它将以Android SDK称为external storage的名称创建文件。

  

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

代表removable storage

  

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

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

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

答案 2 :(得分:0)

尝试此代码:

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);