2011-01-23 55 views
5

一切都在问题中。这里是我的代码:如何在Android中创建一个目录?

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。 有人可以告诉我什么是错的我的代码?

Thx为您的建议!

[编辑]

顺便说一句,当手机处于DEVELOPPEMENT模式,不应用对SD卡的写访问?我编程我的手机上(宏碁Liquid)

回答

11

您必须添加此权限:

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

顺便说一句,不知道你是怎么得到的SD卡目录...但它必须是这样的:

File sdDir = Environment.getExternalStorageDirectory(); 

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

+0

是的,我知道。但这是我得到它的方式。感谢您的回答 – Dimitri 2011-01-23 21:00:41

2

你将需要

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

添加到您的清单文件来告诉安卓要求用户为你的应用程序被允许。

2

首先,请使用File构造函数,其中File为您的目录,String为您所需的子目录。

除此之外,最有可能你正试图创造一个你不许一个目录,要么是因为:

  • currentDirectory不存在,或
  • currentDirectory指向一个地方上板载闪存存储,你不能写,或
  • currentDirectory点到外部存储的地方,你缺乏WRITE_EXTERNAL_STORAGE许可
0

代替boolean success = f.mkdir();使用

boolean success = f.mkdirs(); 

是解决我的问题(我用同样的参考代码,你和有同样的问题)。

相关问题