2012-05-14 7 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(); 
} 
関連する問題