如何在Android中创建目录?

4urapxun  于 2022-12-28  发布在  Android
关注(0)|答案(4)|浏览(268)

一切都在问题中。下面是我的代码:

private void createDirectory(File currentDirectory) 
{
    File f = null;
      
    try {
        f = new File(currentDirectory.getCanonicalPath() + "/directory" + count);
    
        boolean success = f.mkdir();

        if (!success) {
            Toast.makeText(currentContext, f.getName() + " could not be created", 15).show();
        }
    } catch (IOException ioe) {
        Toast.makeText(currentContext, f.getName() + " could not be created", 15).show();
    }

    count++;
}

我正在写一个小的文件管理器在Android和我想添加的可能性,以创建一个目录。有没有异常和变量成功总是返回假。有人能告诉我什么是错误的我的代码?
谢谢你的建议!!

  • [编辑]*

顺便说一句,当手机处于开发模式时,应用程序是否对sdcard有写访问权限?我正在我的手机上编程(宏碁液体)

5w9g7ksd

5w9g7ksd1#

您必须添加此权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

顺便说一句,不知道你是如何获得SDcard目录...但它必须是这样的:

File sdDir = Environment.getExternalStorageDirectory();

这一点很重要,因为有些程序员过去认为SDCard总是/sdcard,但它可能会改变。

lh80um4z

lh80um4z2#

你得加上

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

添加到您的清单文件,以告知Android向用户请求允许您的应用。

w41d8nur

w41d8nur3#

首先,请使用File构造函数,该构造函数接受File作为您的目录,接受String作为您想要的子目录。
除此之外,您很可能正在尝试创建一个不允许您访问的目录,原因可能是:

  • currentDirectory不存在,或者
  • currentDirectory指向板载闪存上不允许写入的位置,或者
  • currentDirectory指向外部存储上的某个位置,而您没有WRITE_EXTERNAL_STORAGE权限
eeq64g8w

eeq64g8w4#

而不是使用boolean success = f.mkdir();

boolean success = f.mkdirs();

这解决了我的问题(我使用了与您相同的参考代码,遇到了相同的问题)。

相关问题