本帖最后由 创造命运 于 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;
}
}
|