内容比较简单,关键是文件过滤器的使用和简单的递归思想
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
public class file_list {
public static void list(String name) {
try {
File f = new File(name);
if (!f.exists()) {
System.out.println("文件不存在哦");
return;
}
if (f.isDirectory()) {
File[] list = f.listFiles(getFileExtensionFilter(".txt"));
for (int i = 0; i < list.length; i++)
System.out.println(list[i].toString());
list = f.listFiles(getNotDirFileFilter());
for (int i = 0; i < list.length; i++)
if (list[i].isDirectory())
list(list[i].toString());
}
} catch (Exception e) {
System.out.println("IO error!/r/n" + e.toString());
}
}
public static void main(String[] args) {
list("c://windows");
}
public static FilenameFilter getFileExtensionFilter(String extension) {// 指定扩展名过滤
final String _extension = extension;
return new FilenameFilter() {
public boolean accept(File file, String name) {
boolean ret = name.endsWith(_extension);
return ret;
}
};
}
public static FileFilter getNotDirFileFilter() { // 文件还是目录过滤
return new FileFilter() {
public boolean accept(File file) {
return file.isDirectory();//关键判断点
}
};
}
}