比如:
删除给定文件夹下所有大于2M的文件,如果文件夹下的子文件或者子文件夹被删除完毕了,也将该文件夹删除
public class IODemo{
public static void main(String[] args) {
File file = new File("E:\\it");//给定的文件夹
deleteDir(file);
}
private static void deleteDir(File file) {
if (file.isFile()) {
if (file.length() > 2 * 1024) {
file.delete();
return;
}
}
File[] files = file.listFiles();
for (File f : files) {
if (f.isFile()) {
if (f.length() > 2 * 1024) {
f.delete();
}
}
if (f.isDirectory()) {
//文件夹为空判断
if (f.list().length== 0) {
f.delete();
}
deleteDir(f);
}
}
file.delete();//缺少这步,最后变为空的文件夹无法删除
}
}