¿Cómo puedo crear un nuevo directorio en la tarjeta SD mediante programación?
Quiero crear un nuevo directorio dentro de la tarjeta SD programáticamente y quiero eliminar ese directorio también. ¿Cómo puedo hacer esto?
Para crear un directorio puede utilizar el código siguiente:
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(); }
Para eliminar un directorio vacío, puede utilizar este código:
boolean success = (new File("your/directory/name")).delete(); if (!success) { System.out.println("Deletion failed!"); }
Para eliminar un directorio no vacío, puede utilizar este código:
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(); }
Tal vez también necesite este permiso:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Esta respuesta es también un buen recurso:
Cómo crear directorio automáticamente en tarjeta SD
Para crear un directorio, puede utilizar
File myDirectory = new File(Environment.getExternalStorageDirectory(), "dirName"); if(!myDirectory.exists()) { myDirectory.mkdirs(); }
Para eliminarlo,
myDirectory.delete();
No se olvide de agregar permiso:
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
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();
new File(Environment.getExternalStorageDirectory(), "DirName").mkdirs();
He creado directorio y subdirectorio para mi proyecto como este ..
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(); }
Si desea crear directorio raíz y subcarpeta debajo de él
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();