javaandroidfilefile-exists

Check if a file exists before calling openFileInput


To read a file in Android from your app's private storage area you use the functionopenFileInput().

My question is, is there a way to check if this file exists before calling this function? The function can throw a FileNotFoundException, but I feel like calling this and then doing something based on a try-catch is a bad practice.

Using File.exist() seems like a strange thing to use also since it would require instantiating a class and I am not sure if just passing the name of the file to it would get it to find the file in the private area of my phone.


Solution

  • public boolean fileExists(Context context, String filename) {    
        File file = context.getFileStreamPath(filename);
        if(file == null || !file.exists()) {
            return false;
        }
        return true;
    }
    

    EDIT:

    Also, here is another way for files in external storage.

    String fileUrl = "/appname/data.xml";
    String file = android.os.Environment.getExternalStorageDirectory().getPath() + fileUrl;
    File f = new File(file);
    
    if(f.exists())
    return;