Home » Android » how to create a folder in android External Storage Directory?

how to create a folder in android External Storage Directory?

Posted by: admin April 23, 2020 Leave a comment

Questions:

I cannot create a folder in android External Storage Directory.

I have added permissing on manifest,

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Here is my code:

 String Path = Environment.getExternalStorageDirectory().getPath().toString()+ "/Shidhin/ShidhiImages";
  System.out.println("Path  : " +Path );
  File FPath = new File(Path);
  if (!FPath.exists()) {
        if (!FPath.mkdir()) {
            System.out.println("***Problem creating Image folder " +Path );
        }
  }
How to&Answers:

Do it like this :

String folder_main = "NewFolder";

File f = new File(Environment.getExternalStorageDirectory(), folder_main);
if (!f.exists()) {
    f.mkdirs();
}

If you wanna create another folder into that :

File f1 = new File(Environment.getExternalStorageDirectory() + "/" + folder_main, "product1");
if (!f1.exists()) {
    f1.mkdirs();
}

Answer:

The difference between mkdir and mkdirs is that mkdir does not create nonexistent parent directory, while mkdirs does, so if Shidhin does not exist, mkdir will fail. Also, mkdir and mkdirs returns true only if the directory was created. If the directory already exists they return false

Answer:

I can create a folder in android External Storage Directory.

I have added permissing on manifest,

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Here is my code:

String folder_main = "Images";

File outerFolder = new File(Environment.getExternalStorageDirectory(), folder_main);

File inerDire = new File(outerFolder.getAbsoluteFile(), System.currentTimeMillis() + ".jpg");

if (!outerFolder.exists()) {

    outerFolder.mkdirs();

}
if (!outerFolder.exists()) {

    inerDire.createNewFile();

}
  • outerFolder.mkdirs(); // This will create a Folder

  • inerDire.createNewFile(); // This will create File (For E.g .jpg
    file)

Answer:

we can Create Folder or Directory on External storage as :

 String myfolder=Environment.getExternalStorageDirectory()+"/"+fname;
     File f=new File(myfolder);
     if(!f.exists())
     if(!f.mkdir()){
     Toast.makeText(this, myfolder+" can't be created.", Toast.LENGTH_SHORT).show();

    }
    else
     Toast.makeText(this, myfolder+" can be created.", Toast.LENGTH_SHORT).show();
}

and if we want to create Directory or folder on Internal Memory then we will do :

File folder = getFilesDir(); 
File f= new File(folder, "doc_download"); 
f.mkdir();

But make Sure you have given Write External Storage Permission.
And Remember that if you have no external drive then it choose by default to internal parent directory.
I’m Sure it will work …..enjoy code

Answer:

Try adding

FPath.mkdirs();
(See http://developer.android.com/reference/java/io/File.html)

and then just save the file as needed to that path, Android OS will create all the directories needed.
You don’t need to do the exists checks, just set that flag and save.
(Also see : How to create directory automatically on SD card

Answer:

The use of Environment.getExternalStorageDirectory() now is deprecated since API level 29, the option is using:

Context.getExternalFilesDir().

Example:

void createExternalStoragePrivateFile() {
    // Create a path where we will place our private file on external
    // storage.
    File file = new File(getExternalFilesDir(null), "DemoFile.jpg");

    try {
        // Very simple code to copy a picture from the application's
        // resource into the external file.  Note that this code does
        // no error checking, and assumes the picture is small (does not
        // try to copy it in chunks).  Note that if external storage is
        // not currently mounted this will silently fail.
        InputStream is = getResources().openRawResource(R.drawable.balloons);
        OutputStream os = new FileOutputStream(file);
        byte[] data = new byte[is.available()];
        is.read(data);
        os.write(data);
        is.close();
        os.close();
    } catch (IOException e) {
        // Unable to create file, likely because external storage is
        // not currently mounted.
        Log.w("ExternalStorage", "Error writing " + file, e);
    }
}

void deleteExternalStoragePrivateFile() {
    // Get path for the file on external storage.  If external
    // storage is not currently mounted this will fail.
    File file = new File(getExternalFilesDir(null), "DemoFile.jpg");
    file.delete();
}

boolean hasExternalStoragePrivateFile() {
    // Get path for the file on external storage.  If external
    // storage is not currently mounted this will fail.
    File file = new File(getExternalFilesDir(null), "DemoFile.jpg");
    return file.exists();
}

Answer:

try {

String filename = “SampleFile.txt”;
String filepath = “MyFileStorage”;

                FileInputStream fis = new FileInputStream(myExternalFile);
                DataInputStream in = new DataInputStream(fis);
                BufferedReader br =
                        new BufferedReader(new InputStreamReader(in));
                String strLine;
                while ((strLine = br.readLine()) != null) {
                    myData = myData + strLine;
                }
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
          inputText.setText(myData);
            response.setText("SampleFile.txt data retrieved from External Storage...");
        }
    });

    if (!isExternalStorageAvailable() || isExternalStorageReadOnly()) {
        saveButton.setEnabled(false);
    }
    else {
        myExternalFile = new File(getExternalFilesDir(filepath), filename);
    }