2012-01-21 30 views
1

有沒有一種方法,允許在Android 2.1創建一個新的文件,如果相關的目錄不存在,也創建它們? 讓我知道,由於這個片段不起作用:創建一個文件和所有的父目錄

static String separator = File.separator; 
public static final String DIRECTORYBIGLIETTI = "C:" + separator + "Users" + separator + "7-Spode" + separator + "Documents" + separator + "Android" + separator + "HUVWSZE"; ///sdcard/.SpodeApps/HUVWSZE/ 
public static final String FILEBIGLIETTI = DIRECTORYBIGLIETTI.concat(separator + "lista.txt"); 

File cartellainputoutput = new File(DIRECTORYBIGLIETTI); 
     if(!cartellainputoutput.exists()) 
     { 
      cartellainputoutput.mkdirs(); 
     } 
     File fileinputoutput = new File(FILEBIGLIETTI); 
     if(!fileinputoutput.exists()) 
      try { 
       fileinputoutput.createNewFile(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

我可以問到管理升級這個網站的圖形? ;)

回答

2

您需要使用mkdirs()來創建目錄,然後創建該文件。

1

只是爲了明確這一點,你不能(如C:\Users\7-Spode\Documents\Android\HUVWSZE)在Android中,你必須使用類似Linux的文件路徑(如/data/my.android.application/data_directory/file/sdcard/directory/file使用類似Windows的文件路徑。

此外,你應該使用方法如getFilesDir()(內部存儲)和getExternalStorageDirectory()(用於外部存儲裝置,例如SD卡)來獲取這些目錄,並從那裏你可以創建一個普通File對象,並從那裏處理它。

例(內部存儲):

File dir = getFilesDir(); // Returns a directory exclusively for this app. 
File file = new File(dir, "directory/file"); 
file.mkdirs(); 
file.createNewFile(); 

另請注意,使用外部存儲器時,應始終使用getExternalStorageState()檢查外部存儲器是否不可用(例如,SD卡已被移除,或設備已連接 )。

有關如何在Android中使用內部和外部存儲的更多信息,請參閱this nifty article

+1

這是對的。只是爲了完成答案...圖形很好! :) –

相關問題