2012-09-24 77 views
-1

我想在我的SDCard上自動創建包含文件完整路徑的給定路徑的目錄。路徑從服務器動態傳遞,所以我不知道目錄的名稱是什麼,目錄結構有多深。如何在Android中的SD卡上創建動態目錄結構?

例如DIR1/DIR2/DIR3/FILE1.TXT

我使用下面的代碼段

createDirectoryIfNotPresent(Environment.getExternalStorageDirectory() + "/"+ mypaths.getNextPath()); 

其中的

createDirectoryIfNotPresent 

定義是

private void createDirectoryIfNotPresent(String fileName) { 
    File f = new File(fileName); 

    if(!f.exists()) 
     f.mkdirs(); 
} 

但上面的代碼也爲file1.txt創建目錄。我如何避免這種情況?我只想爲目錄名稱而不是文件名創建目錄。

+0

如何分割字符串,最後/作爲分裂標記? –

回答

1

如果文件名包含.txt或其它擴展

if(f.toString.contains(".txt")) { 
f.createNewFile(); 
} else { 
f.mkdirs(); 
} 

如果擴展是不斷變化的,您可以做檢查簡單的東西,你甚至可以訴諸使用正則表達式。

+0

我甚至不知道文件的擴展名。 – Nik

+0

好吧,所以基本上任何文件都必須是格式name.extension您可以使用正則表達式來查看輸入的名稱是否匹配它。如果是的話,創建一個文件,否則去一個目錄。有關正則表達式的更多信息,請參閱此鏈接http://www.vogella.com/articles/JavaRegularExpressions/article.html –