一、删除代码:
package deletedir;
import java.io.File;
public class DeleteDir {
//删除空目录
public void doDeleteEmptyDir(String dir) {
boolean success = (new File(dir)).delete();
if (success) {
System.out.println("Successfully deleted empty directory: " + dir);
} else {
System.out.println("Failed to delete empty directory: " + dir);
}
}
//递归删除文件夹及其下面的文件
public 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();
}
}
二、测试:
package deletedir;
import java.io.File;
public class TestDeleteDirMain {
public static void main(String[] args) {
DeleteDir deleteDir = new DeleteDir();
String dir="D://test//zipRes//004";
File dirs =new File("D://test//zipRes//0001");
//删除空目录的功能
deleteDir.doDeleteEmptyDir(dir);
//删除目录及其目录下的文件(采用递归的方式实现的。)
boolean results = deleteDir.deleteDir(dirs);
if(results){
System.out.println("删除成功...");
}else{
System.out.println("删除失败...");
}
}
}
说明:
(1)删除空目录方法:例如指定路径:D://test//zipRes//004,004文件夹下面是空的,在调用 deleteDir.doDeleteEmptyDir(dir);后,就会把指定路径下的004文件夹删除,结果为:D://test//zipRes
(2)递归删除文件夹及其文件夹下的文件:例如指定的路径:D://test//zipRes//0001,0001文件夹下面有文件,所以再删除0001文件夹之前,会先递归删除0001下面的所有文件,然后在删除0001文件件。最后执行 boolean results = deleteDir.deleteDir(dirs);后的结果为D://test//zipRes。