/**
* 删除目录及下面的所有文件
*/
public static void deleteDirectory(File dir) throws IOException {
if ((dir == null) || !dir.isDirectory()) {
// throw new IllegalArgumentException("Argument " + dir+ " is not a
// directory. ");
System.out.println("Argument " + dir + " is not a directory. ");
}
else {
File[] entries = dir.listFiles();
int sz = entries.length;
for (int i = 0; i < sz; i++) {
if (entries[i].isDirectory()) {
deleteDirectory(entries[i]);
}
else {
entries[i].delete();
}
}
/**
* 改为deleteParentDir(dir,3); 目的:删除当前目录,如果上级目录为空,递归删除,层次由depth控制
*/
// dir.delete();
deleteParentDir(dir, 3);
}
}
/**
* 递归删除上级目录
* 最底层目录,由此开始向上递归,所以应该保证此目录为空
* @param depth
* 递归层次
*/
public static void deleteParentDir(File dir, int depth) throws IOException {
if (dir == null) {
throw new IllegalArgumentException("Argument " + dir + " is not a directory. ");
}
else {
dir.delete();
// 递归删除父目录,层次由 depth 控制
if (depth > 0) {
deleteParentDir(dir.getParentFile(), depth - 1);
}
}
}
删除目录及下面的所有文件
最新推荐文章于 2024-04-26 16:37:55 发布