用java写一段程序扫描文件夹下所有后缀为.txt的文件代码

如题所述

import java.io.File;
import java.io.FilenameFilter;

public class FileNameSelector implements FilenameFilter//FilenameFilter接口实现文件名过滤器功能;
{
String extension = ".";
public FileNameSelector(String fileExtensionNoDot)
{
extension += fileExtensionNoDot;
}
@Override
public boolean accept(File dir, String name)
{
return name.endsWith(extension);
}
public static void main(String[] args)
{
File directory = new File("D:\\java test");
//列出所有文件
/*File[] files = directory.listFiles();
System.out.println("\n目录"+directory.getName()+"下的所有文件");
for(File file : files)
{
System.out.print(" " + file.getName());
}*/
//列出所有.txt文件
File[] txtFiles = directory.listFiles(new FileNameSelector("txt"));
System.out.println("\n目录"+directory.getName()+"下的.txt文件");
for(File file : txtFiles)//枚举txtFiles在file中。
{
System.out.print(" " + file.getName());
}

}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-05-23
import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class Jiaogu {

/**
* @param args
*/
public static void main(String[] args) {
Jiaogu f = new Jiaogu();
List<File> ll = f.getFiles(new File("d:\\testfiledir"),"txt");
for (File ff : ll) {
System.out.println(ff.getPath());
}
}

public List<File> getFiles(File fileDir, String fileType) {
List<File> lfile = new ArrayList<File>();
File[] fs = fileDir.listFiles();
for (File f : fs) {
if (f.isFile()) {
if (fileType
.equals(f.getName().substring(
f.getName().lastIndexOf(".") + 1,
f.getName().length())))
lfile.add(f);
} else {
List<File> ftemps = getFiles(f,fileType);
lfile.addAll(ftemps);
}
}
return lfile;
}

}本回答被网友采纳
第2个回答  2014-09-10
很好实现啊 用递归 遍历文件夹 然后得到文件名 然后splite(".") 之后取后边那个值 比较是不是txt
相似回答