2012-12-19 79 views

回答

13

除非您想要創建結構中的每個文件夾,否則不會使用mkdirs()。儘量不要在字符串的末尾添加額外的斜線,並查看是否有效。

例如

final File newFile = new File("/mnt/sdcard/test"); 
newFile.mkdir(); 
+2

我已經在最後嘗試了2個斜槓,它的工作原理,謝謝! – arts777

+0

沒有指向所有Android設備(KitKat)上的真實SD卡的「/ mnt/sdcard」。 我也試過在最後使用「/ storage/external_SD/Android/data//files/dummy //」的兩個斜槓技巧,它現在創建了一個在Windows上可見的目錄文件,但是dummy仍然是文件。與ES3都是目錄。對我來說足夠好:)) – Zekitez

0

嘗試使用所有的

String rootPath=Environment.getExternalStorageDirectory().getAbsolutePath()+"/test/"; 
      File file=new File(rootPath); 
if(!file.exists()){ 
file.mkdirs(); 
} 
0

首先你不應該使用「到/ mnt/SD卡/測試」文件路徑,這可能會導致一些問題一些Android手機。改爲使用:

public final static String APP_PATH_SD_CARD = "/Test"; 

String fullPath = Environment.getExternalStorageDirectory().getAbsolutePath() + APP_PATH_SD_CARD; 

自從您添加破折號後,它會創建一個空文件。

現在,你有你的路徑使用下面的代碼:

try { 
    File dir = new File(fullPath); 
    if (!dir.exists()) { 
     dir.mkdirs(); 
    } 
} 
catch(Exception e){ 
    Log.w("creating file error", e.toString()); 
} 
+0

>>首先你不應該使用「/ mnt/sdcard/test」的文件路徑>>沒關係,因爲它是示例代碼。實際上,它是文件管理器的一部分,我試圖用用戶定義的路徑創建目錄。所以,我不使用實際代碼中的硬編碼「/ mnt/sdcard /」路徑。 – arts777

+0

在這種情況下足夠公平。 – Max

7

當我需要確保對文件中的所有迪爾斯存在,但我只有文件路徑 - 我做

new File(FileName.substring(0,FileName.lastIndexOf("/"))).mkdirs(); 
相關問題