如何在Android中创建目录?

时间:2011-01-23 20:53:08

标签: java android android-sdcard

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

    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中编写一个小文件管理器,我想添加创建目录的可能性。没有异常,变量成功总是返回false。 有人能告诉我我的代码有什么问题吗?

谢谢你的建议!!

[编辑]

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

4 个答案:

答案 0 :(得分:11)

您必须添加此权限:

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

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

File sdDir = Environment.getExternalStorageDirectory();

这很重要,因为有些程序员会认为SD卡总是/ sdcard,但它可能会改变。

答案 1 :(得分:2)

您需要添加

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

到你的清单文件,告诉Android要求用户允许你的应用程序。

答案 2 :(得分:2)

首先,请使用File构造函数,该构造函数为您的目录选择File,并为您所需的子目录使用String

除此之外,您很可能正在尝试创建一个不允许的目录,因为:

  • currentDirectory不存在,或
  • currentDirectory指向机载闪存存储器上不允许写入的位置,或
  • currentDirectory指向外部存储空间中的某个位置但您缺少WRITE_EXTERNAL_STORAGE权限

答案 3 :(得分:0)

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

boolean success = f.mkdirs();

解决了我的问题(我使用了与你相同的参考代码并遇到了同样的问题)。