I want to create a new directory inside the SD card programmatically and I want to delete that directory also. How can I do this?
Asked
Active
Viewed 5.1k times
6 Answers
52
To create a directory you can use the following code:
File dir = new File("path/to/your/directory");
try{
if(dir.mkdir()) {
System.out.println("Directory created");
} else {
System.out.println("Directory is not created");
}
}catch(Exception e){
e.printStackTrace();
}
To delete an empty directory, you can use this code:
boolean success = (new File("your/directory/name")).delete();
if (!success) {
System.out.println("Deletion failed!");
}
To delete a non-empty directory, you can use this code:
public static boolean deleteDir(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i=0; i<children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
return dir.delete();
}
Maybe you also need this permission:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
This answer is also a good resource:

Community
- 1
- 1

RoflcoptrException
- 51,941
- 35
- 152
- 200
-
1it didn't necessary to contain mkdir() method in try catch, because if folder exist, it's return false and didn't throw exception – Amir Hossein Ghasemi Apr 12 '15 at 12:09
24
to create a directory, you could use
File myDirectory = new File(Environment.getExternalStorageDirectory(), "dirName");
if(!myDirectory.exists()) {
myDirectory.mkdirs();
}
to delete it,
myDirectory.delete();
dont forget to add permission:
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"

edwin
- 7,985
- 10
- 51
- 82

Nakul Sudhakar
- 1,574
- 1
- 24
- 24
-
2No need to check for directory existence. `mkdirs()` will return true if the directory was created, false on failure or if the directory already existed. – Derek W May 21 '14 at 20:33
4
mkdir() for
File directory = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/abcabcabc");
directory.mkdir();
mkdirs() for
File directory = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Mani/abcxyz");
directory.mkdirs();

MichaelS
- 5,941
- 6
- 31
- 46

Ratan Maniyar
- 41
- 1
2
new File(Environment.getExternalStorageDirectory(), "DirName").mkdirs();
0
if you want to create root directory and subfolder under it
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/rootfoldername"+"/your sub folder name");
File dir=new File(root + "/rootfoldername"+"/your sub folder name");
myDir.mkdirs();
dir.mkdirs();

Smittey
- 2,475
- 10
- 28
- 35

vivek pagar
- 45
- 1
- 8
-1
I have created directory and sub directory for my project like this..
File root = android.os.Environment.getExternalStorageDirectory();
File dir = new File (root.getAbsolutePath() + "/MP3 Music/"); //it is my root directory
File favourite = new File (root.getAbsolutePath() + "/MP3 Music/" + "Favourites"); // it is my sub folder directory .. it can vary..
try
{
if(dir.exists()==false)
{
dir.mkdirs();
}
/* else
{
// Toast.makeText(MainActivity.this, "Root Directory is already exists", Toast.LENGTH_LONG).show();
}*/
if(favourite.exists()==false)
{
favourite.mkdirs();
}
}
catch(Exception e){
e.printStackTrace();
}

Zar E Ahmer
- 33,936
- 20
- 234
- 300