public static void main(String[] args) {
//文件名称过滤器
File dir = new File("E:\\");
//File(String pathname):根据一个路径得到File对象
String[] arr = dir.list(new FilenameFilter() {
//FilenameFilter() 实现此接口的类实例可用于过滤器文件名。
//Abstract Window Toolkit 的文件对话框组件使用这些实例过滤 File 类的 list 方法中的目录清单。
@Override
public boolean accept(File dir, String name) {
//System.out.println(dir);
//System.out.println(name);
File file = new File(dir, name);
//File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
return file.isFile() && file.getName().endsWith(".jpg");
} //(boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾)
});
}
//部分原码: 上面是过滤器,下面可以看看,不需要打入
public String[] list(FilenameFilter filter) {
String names[] = list();//获取到文件/文件夹名称数组
if ((names == null) || (filter == null)) {//如果list()中没有内容或者没有传过滤器就返回
return names;
}
List<String> v = new ArrayList<>();
for (int i = 0 ; i < names.length ; i++) {//在遍历的过程中,调用accept方法判断
//accept方法需要手动定义过滤条件
if (filter.accept(this, names[i])) { //如果accept返回true,满足条件,存入集合
v.add(names[i]); //否则不存
}
}
return v.toArray(new String[v.size()]);//最终集合存储满足条件的元素,转换成数组返回
}
}
|
|