フィルタの使用方法
1830 ワード
package cn.dali3.code15;
import java.io.File;
import java.io.FileFilter;
/*
*
* , A .java
*
* File ,listFiles
* 1.public File[] listFiles(FileFilter filter)
* 2.public File[] listFiles(FilenameFilter filter)
*
* 1:
* :FileFilter
* FileFilter , accept boolean accept(File pathname);
* , accept 。
*
* File [] file = f1.listFiles(new FilefilterImpl());
* listFiles 。
* listFiles File accept
* accept true, listFiles File File , False 。
* accept 。
*
* 2:
* FilenameFilter filter
* FilenameFilter boolean accept(File dir,String name)
* dir name ,
*
*
* lambda
* */
public class Demo01 {
public static void main(String[] args) {
getAllJava02("C:\\Users\\Administrator\\Desktop\\A");
}
private static void getAllJava(String str) {
File f1 = new File(str);
File[] file = f1.listFiles(new FilefilterImpl());
for (File file1 : file) {
if (file1.isDirectory()) {
getAllJava(file1.getPath());
} else {
System.out.println(file1);
}
}
}
private static void getAllJava02(String str) {
File f1 = new File(str);
File[] file = f1.listFiles(
(File pathname) -> (pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".java"))
);
for (File file1 : file) {
if (file1.isDirectory()) {
getAllJava(file1.getPath());
} else {
System.out.println(file1);
}
}
}
}