这是我的代码。但是它只能删除当前文件夹中的txt文件,不能删除子文件夹。
import java2.org.apache.commons.io.filefilter.WildcardFileFilter;
import java.io.*;
public class DeleteSameType{
public static void main(String []args){
File dir = new File("user/document/test");
FileFilter fileFilter = new WildcardFileFilter("*.txt");
File[] files = dir.listFiles(fileFilter);
for(File f: files){
f.delete();
}
}
}
最佳答案
File.delete()不会删除不为空的目录。您需要创建一个递归函数以从目录和子目录中删除文件。
import java2.org.apache.commons.io.filefilter.WildcardFileFilter;
import java.io.*;
public class DeleteSameType{
public static void main(String []args){
DeleteSameType deleteSameType = new DeleteSameType();
File dir = new File("user/document/test");
deleteSameType.recursiveDelete(dir)
}
private void recursiveDelete( File dir) {
FileFilter fileFilter = new WildcardFileFilter("*.txt");
if(dir.isDirectory()) {
File[] files = dir.listFiles(fileFilter);
for(File f: files){
recursiveDelete(f);
}
}
dir.delete();
}
}