2014-10-06 61 views
0

我遇到了運行函數Mkdir()的問題。我該怎麼辦? 我已經添加讀/寫權限:Android中無法使用mkdir文件夾

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

下面是我的代碼片段:

private File getTempFile(Context context) 
    { 

     File path; 
     //Find the dir to save cached images 
     if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){ 

      path=new File(android.os.Environment.getExternalStorageDirectory(),"/Tanker/Foto/"); 
     } 
     else { 
      path=context.getCacheDir(); 
     } 
     String pictureFileName = Long.toHexString(System.currentTimeMillis())+".jpg"; 
     if (!path.exists()) 
     { 
      path.mkdir(); 
     } 
     return new File(path, pictureFileName); 
    } 

請幫助。

+0

試試這個'path.mkdirs();' – 2014-10-06 09:16:12

回答

3
path=new File(android.os.Environment.getExternalStorageDirectory(),"/Tanker/Foto/"); 

mkdir不會創建完整路徑。你必須使用mkdirs

從文檔

創建此抽象路徑名,包括任何 必需但不存在的父目錄命名的目錄。

例如,

if (!path.exists()) { 
     path.mkdirs(); 
    } 
+1

多謝先生.. – 2014-10-06 09:40:49

1

假設父文件存在,創建該文件所指定的目錄。如果你還想創建失蹤父母,請使用mkdirs()。

請注意,此方法不會在失敗時拋出IOException。呼叫者必須檢查返回值。還要注意,如果目錄已經存在,這個方法返回false。如果您想知道目錄是否存在於返回中,請使用(f.mkdir()|| f.isDirectory())或者直接忽略此方法的返回值,並簡單地調用isDirectory()。 返回

true if the directory was created, false on failure or if the directory already existed. 

檢查返回VALUË比你得到的問題正當理由。