参见英文答案 > Delete directories recursively in Java 23个
这是我试过的代码:
import java.io.*;
public class file03 {
public static void main(String[] args) {
File f1 = new File("C:/tempo1/tempo");
f1.mkdirs();
File f2 = new File("C:/test");
if(!f2.exists()) {
f2.mkdir();
}
f1 = new File("C:/tempo1/kempo");
f1.mkdirs();
f1 = new File("C:/tempo1");
String[] t = {};
if(f1.exists()) {
t = f1.list();
System.out.println(t.length + " files found");
}
for(int i = 0; i < t.length; i++) {
System.out.println(t[i]);
}
try {
Thread.sleep(3000);
}
catch(Exception e) {}
f2.delete();
f2 = new File("C:/tempo1/test.txt");
try {
f2.createNewFile();
}
catch(Exception e) {}
try {
Thread.sleep(7000);
}
catch(Exception e) {}
File f3 = new File("C:/tempo1/renametesting.txt");
f2.renameTo(f3);
try {
Thread.sleep(5000);
}
catch(Exception e) {}
f3 = new File("C:/tempo1");
f3.delete();
}
}
我注意到的是,当文件夹测试被删除时,文件夹tempo1不会被删除.是因为它包含其他文件夹和文件吗?如果是这样,我该如何删除它?
我正在使用BlueJ IDE.
解决方法:
要删除包含文件的文件夹,不需要循环或递归搜索.你可以直接使用:
FileUtils.deleteDirectory(<File object of directory>);
此功能将删除文件夹及其中的所有文件