Error: open failed: ENOENT (No such file or directory)

The Pictures directory might not exist yet. It’s not guaranteed to be there.

In the API documentation for getExternalStoragePublicDirectory(), the code ensures the directory exists using mkdirs:

File path = Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_PICTURES);
File file = new File(path, "DemoPicture.jpg");

try {
    // Make sure the Pictures directory exists.
    path.mkdirs(); 

…so it may be as simple as adding that path.mkdirs() to your existing code before you createTempFile.

Leave a Comment