使用文件过滤器筛选将指定文件夹下的小于200K的小文件获取并打印(包括所有子文件夹的文件)。
正确答案:
package com.test.Test02;
import java.io.File;
import java.io.FileFilter;
public class Test07 {
public static void main(String[] args) {
filterFile(new File("E:\\abc"));
}
private static void filterFile(File dir) {
if(dir.isFile()){
System.out.println(dir+"不是文件夹");
return;
}
if(!dir.exists()){
return;
}
//获取文件数组
File[] files = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
//判断是否是文件夹,如果是返回true
if (pathname.isDirectory()) {
return true;
}
//获得文件大小
long length = pathname.length();
if (length < 400) {
return true;
}
return false;
}
});
//遍历数组
for (File file : files) {
if(file.isDirectory()){
filterFile(file);
continue;
}
System.out.println(file);
}
}
}
/*
打印的结果:
E:\abc\code\Demo01.java
E:\abc\file03.txt
E:\abc\HelloWorld.java
E:\abc\IT书籍\C从入门到放弃.pdf
E:\abc\IT书籍\Java从入门到精通.pdf
E:\abc\哈利波特.txt
E:\abc\朝花夕拾.txt
E:\abc\流浪地球.avi
E:\abc\百年孤独.txt
*/
自己的步骤:
package com.test.Test02;
import java.io.File;
public class Test06 {
public static void main(String[] args) {
//使用文件过滤器筛选将指定文件夹下的小于2K的小文件
//获取并打印(包括所有子文件夹的文件)。
decide(new File("E:/abc"));
}
private static void decide(File dir) {
// if (dir != null && dir.length() != 0) {
//遍历
File[] files = dir.listFiles();
for (File file : files) {
if (file.isFile()) {
if (file.length() < 400) {
System.out.println("file = " + file);
}
} else {
decide(file);
}
}
// }
}
}
/*
打印的结果:
file = E:\abc\code\Demo01.java
file = E:\abc\file03.txt
file = E:\abc\HelloWorld.java
file = E:\abc\IT书籍\C从入门到放弃.pdf
file = E:\abc\IT书籍\Java从入门到精通.pdf
file = E:\abc\哈利波特.txt
file = E:\abc\朝花夕拾.txt
file = E:\abc\流浪地球.avi
file = E:\abc\百年孤独.txt
*/
原文:https://www.cnblogs.com/liqiliang1437/p/13121463.html