Android 如何以编程方式在SD卡上创建新目录?

Android 如何以编程方式在SD卡上创建新目录?,android,Android,我想以编程方式在SD卡内创建一个新目录,并且还想删除该目录。如何执行此操作?要创建目录,可以使用以下代码: 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(Exc

我想以编程方式在SD卡内创建一个新目录,并且还想删除该目录。如何执行此操作?

要创建目录,可以使用以下代码:

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();
}
要删除空目录,可以使用以下代码:

boolean success = (new File("your/directory/name")).delete();
if (!success) {
   System.out.println("Deletion failed!");
}
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();
}
要删除非空目录,可以使用以下代码:

boolean success = (new File("your/directory/name")).delete();
if (!success) {
   System.out.println("Deletion failed!");
}
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();
}
公共静态布尔deleteDir(文件目录){
if(dir.isDirectory()){
String[]children=dir.list();

对于(inti=0;i创建目录,可以使用

File myDirectory = new File(Environment.getExternalStorageDirectory(), "dirName");

if(!myDirectory.exists()) {                                 
  myDirectory.mkdirs();
}
要删除它

 myDirectory.delete();
别忘了添加权限:

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

我已经像这样为我的项目创建了目录和子目录

        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();

        }

如果要创建根目录及其下的子文件夹

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();

无需检查目录是否存在。
mkdirs()
如果目录已创建,则返回true;如果目录已存在,则返回false。try catch中不必包含mkdir()方法,因为如果文件夹存在,则返回false,并且不会引发异常