【发布时间】:2011-04-17 10:16:50
【问题描述】:
我想以编程方式在 SD 卡中创建一个新目录,并且我还想删除该目录。我该怎么做?
【问题讨论】:
标签: android
我想以编程方式在 SD 卡中创建一个新目录,并且我还想删除该目录。我该怎么做?
【问题讨论】:
标签: android
要创建目录,您可以使用以下代码:
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();
}
也许你也需要这个权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
这个答案也是一个很好的资源:
【讨论】:
要创建一个目录,你可以使用
File myDirectory = new File(Environment.getExternalStorageDirectory(), "dirName");
if(!myDirectory.exists()) {
myDirectory.mkdirs();
}
删除它,
myDirectory.delete();
别忘了添加权限:
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
【讨论】:
mkdirs() 将返回 true,如果失败或目录已存在,则返回 false。
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();
【讨论】:
如果要在其下创建根目录和子文件夹
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();
【讨论】:
我已经为我的项目创建了这样的目录和子目录..
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();
}
【讨论】: