| 本帖最后由 创造命运 于 2014-4-27 00:47 编辑 
 import java.io.File;
 import java.io.FileFilter;
 import java.util.ArrayList;
 import java.util.List;
 public class Test1{
 public static void main(String[] args) {
 File file = new File("e:\\JAVA\\String");
 List <File> list = new ArrayList<File>();
 getFileToList(file, list);
 
 for (File file2 : list) {
 System.out.println(file2);
 }
 }
 
 private static void getFileToList(File file, List<File> list) {
 File[] files = file.listFiles();
 for (File file1 : files) {
 if (file1.isDirectory()) {
 getFileToList(file1, list);
 }
 else{
 if (file1.getName().endsWith(".txt"))
 {
 list.add(file1);
 }
 }
 }
 }
 }
 上面的代码我没有用到过滤器,也实现了你所要求的功能。但是我知道你可能就是想用一下过滤器,我也就试了试,下面是我的代码;import java.io.File;
 import java.io.FileFilter;
 import java.util.ArrayList;
 import java.util.List;
 public class Test1{
 public static void main(String[] args) {
 File file = new File("e:\\JAVA\\String\\Test");
 FileFilterByName ffbn = new FileFilterByName();
 List<File> list = new ArrayList<File>();
 getFileToList(file, list, ffbn);
 for (File file2 : list){
 System.out.println(file2);
 }
 }
 private static void getFileToList(File file, List<File> list, FileFilter ffbn) {
 File[] files1 = file.listFiles();  //我主要就加了这一条语句
 File[] files2 = file.listFiles(ffbn);
 for (File file1 : files1) {
 if (file1.isDirectory()) {
 getFileToList(file1, list, ffbn);
 }
 }
 for (File file2 : files2)
 {
 list.add(file2);
 }
 }
 }
 //文件过滤类,实现FileFilter接口
 class FileFilterByName implements FileFilter
 {
 public boolean accept(File file)
 {
 if (file.getName().endsWith(".txt"))
 {
 return true;
 }
 return false;
 }
 }
 
 
 
 |