2012-11-22 215 views
-1

目前,這是我的代碼:在創建之前檢查目錄/文件是否存在?

private void writeToSDFile(){ 

     File root = android.os.Environment.getExternalStorageDirectory(); 
     File dir = new File (root.getAbsolutePath() + "/download"); 
     dir.mkdirs(); 
     File file = new File(dir, "myData.txt"); 


     try { 
      FileOutputStream f = new FileOutputStream(file); 
      PrintWriter pw = new PrintWriter(f); 
      pw.println(d8 + d7 + ":" + d6 + d5 + ":" + d4 + d3 + ":" + d2 + d1); 
      pw.flush(); 
      pw.close(); 
      f.close(); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
      Log.i(TAG, "******* File not found. Did you" + 
        " add a WRITE_EXTERNAL_STORAGE permission to the manifest?"); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

基本上,我想知道是否有一種方法(可能通過使用if語句的),只如果他們不存在,創建文件/目錄。目前,每次調用writetoSDCard()時都會重新創建它們。

我想要做的就是不斷追加數據到文件末尾。僅供參考,那也就可以存儲這樣的:00:00:00:00

謝謝:)

而且,當我在這裏,只是一個簡單的問題,是有程序的方式說,從txt文檔中讀取2位數字的列表,然後將它們加在一起?例如因此,屏幕上的結果是70?我還沒有真正找到這樣的周圍的任何東西:/

+1

如果(file.exists())? –

+0

if(file.exists())試試這個。 –

+0

嘗試使用'exists()'在你的'dir'上? –

回答

3

試試這個

String FOLDERNAME="/download"; 
File dir = new File(Environment.getExternalStorageDirectory(), FOLDERNAME); 
if(!dir.exists()) 
{ 
dir.mkdir(); 
} 

複製和過去

private void writeToSDFile(){ 

     String FOLDERNAME="/download"; 
     File dir = new File(Environment.getExternalStorageDirectory(), FOLDERNAME); 
     if(!dir.exists()) 
     { 
     dir.mkdir(); 
     } 

    File file = new File(dir, "myData.txt"); 


    try { 
     FileOutputStream f = new FileOutputStream(file); 
     PrintWriter pw = new PrintWriter(f); 
     pw.println(d8 + d7 + ":" + d6 + d5 + ":" + d4 + d3 + ":" + d2 + d1); 
     pw.flush(); 
     pw.close(); 
     f.close(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
     Log.i(TAG, "******* File not found. Did you" + 
       " add a WRITE_EXTERNAL_STORAGE permission to the manifest?"); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

////////////// ////////////////////////////////////////////////// ///// 編輯 對於文件

File f; 
    f=new File(dir, "myData.txt"); 
    if(!f.exists()) 
    { 
    f.createNewFile(); 
    } 
+0

謝謝,這似乎很好的目錄。有沒有辦法對文件做同樣的事情?我試過 File file = new File(dir,「myData.txt」); \t if(!file.exists()){ \t \t file.createNewFile(); \t} 但它不是那樣的 –

+0

不客氣!如果有幫助,不要忘記接受答案;) –

+0

:/它仍然創建一個新文件。它不會附加舊文件。 –

1
String path=Environment.getExternalStorageDirectory()+"/dirpath"; 
File myDirectory = new File(path); 
    if(!myDirectory.isDirectory()){ 
     myDirectory.mkdirs(); 
     } 
1

您可以通過調用dir/fileexists()方法來檢查,或者你可以去特定還喜歡isDirectory()isFile()

File dir = new File (root.getAbsolutePath() + "/download"); 
if(!dir.exists()) 
     dir.mkdirs(); 

or 

if(!dir.isDirectory()) 
     dir.mkdirs(); 

同樣的方式,你可以對文件做也

相關問題