2011-01-23 51 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(); 

是解決我的問題(我用同樣的參考代碼,你和有同樣的問題)。

相關問題