2012-05-14 112 views
25

以下代碼是我如何確定文件是否存在於內部存儲器MODE_PRIVATE中。試圖檢查內部存儲器中是否存在文件

public boolean isset(String filename){ 
    FileInputStream fos = null; 
    try { 
     fos = openFileInput(filename); 
     //fos = openFileInput(getFilesDir()+"/"+filename); 
     if (fos != null) { 
     return true; 
     }else{ 
     return false; 
     } 
    } catch (FileNotFoundException e) { 
     return false; 
    } 

    //File file=new File(mContext.getFilesDir(),filename); 

    //boolean exists = fos.exists(); 
    } 

但是,它進入例外狀態,不會繼續執行代碼。它沒有做回報。爲什麼?

+1

你能爲我們提供的堆棧跟蹤? – Nicholas

回答

101

希望這種方法可以幫助你。

public boolean fileExist(String fname){ 
    File file = getBaseContext().getFileStreamPath(fname); 
    return file.exists(); 
} 
+3

正確的答案,Michael Petrotta你應該接受這個 – Amanni

+1

@bsara爲什麼基本上下文而不是應用程序的上下文,或者兩者兼而有之? –

+0

getApplicationContext()也可以工作 –

4

對於內部存儲,這對我的作品:

public boolean isFilePresent(String fileName) { 
    String path = getContext().getFilesDir().getAbsolutePath() + "/" + fileName; 
    File file = new File(path); 
    return file.exists(); 
} 
相關問題