import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
/*
* 当前目录 "D:\\java\\测试"
* 目录下所有的文件名称是.java(包含子文件夹)
*
* 分析:
* 1:指定要遍历的文件夹 封装 成File对象 File dir
* 2:写一个方法 传递 目录 ,将目录下指定的文件 输出来
* printDir(dir); 写一个方法 遍历 该目录下的所有的文件和文件夹 拿到.java结尾的
* 2.1:获取dir目录下所有的文件与文件夹
* 2.2:通过遍历Files数组 得到每一个文件对象
*/
public class fileFF {
public static void main(String[] args) {
File f = new File("D:\\java\\测试" );
getFF1(f);
System.out.println("----------------------------------");
getFF2(f);
}
//方法一:普通方法(建议使用)
private static void getFF1(File f) {
//數組接收
File[] fs = f.listFiles();
//判斷是不是文件,再判斷是不是.txt結尾
for (File file : fs) {
if(file.isFile()){
if(file.getName().endsWith(".txt")){
System.out.println(file);
}
}else{
getFF1(file);
}
}
}
//方法二:过滤器(了解就行)
private static void getFF2(File f) {
File[] fs = f.listFiles(new myfilter());
for (File file : fs) {
System.out.println(file);
}
}
}
class myfilter implements FileFilter{
public boolean accept(File pathname) {
/*//如果 是文件
//是文件之后 还得是 以.java结尾 才可以 才能返回true
if(pathname.isFile()){
if(pathname.getName().endsWith(".java")){
return true;
}else{
return false;
}
}else{
return false;
}
*/
if(pathname.isDirectory()){
return false;
}
return pathname.getName().endsWith(".txt");
}
} |
|