Java获取一个路径下指定后缀名的所有文件

方法一:

http://blog.csdn.net/zjx102938/article/details/8114114

import java.io.File;
import java.util.ArrayList;
import java.util.List; public class FileFind {
public static void main(String[] args) { String path = "D:\\Test";
List data=new ArrayList();
data=getData(path, data);
for (int i=0;i<data.size();i++) {
System.out.println(data.get(i));
}
} private static List getData(String path, List data) { File f=new File(path);
if (f.isDirectory()) {
File[] fs=f.listFiles();
for (int i=0;i<fs.length;i++) {
data=getData(fs[i].getPath(), data);
}
} else if (f.getName().endsWith(".java")) {
data.add(f.getName());
}
return data;
}
}

  方法二:

package test;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.ArrayList; public class SearchSuffixIndir { private static String path = "E:\\myeclipse\\mirror_parse\\WebRoot\\mirror"; /**
*
* 将给定目录下的及子目录下的 所有的给定后缀名的文件路径打印到一个文件中。
*
* 深度遍历该父目录,将符合条件的文件路径存到集合中。(进行过滤)。
*
* 再将集合写到文件中。
*
*
*/
public static void main(String[] args) { File dir = new File(path); File file = new File(dir,"suffix.txt");
//内部类
FilenameFilter searchSuffix = new FilenameFilter(){
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".html");
}
}; ArrayList<File> path = new ArrayList<File>(); writeToArr(dir,searchSuffix,path);
writeTofile(path,file);
} private static void writeTofile(ArrayList<File> al, File file) {
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter(file)); for(File f: al){
new String();
// bw.write(String.valueOf(f.length()));
bw.write(f.getAbsolutePath());
bw.newLine();
bw.flush();
}
} catch (IOException e) {
throw new RuntimeException("写入失败!");
}finally{
if(bw != null)
try {
bw.close();
} catch (IOException e) {
throw new RuntimeException("关闭失败!");
}
} } public static void writeToArr(File dir, FilenameFilter searchSuffix, ArrayList<File> al) { File []files = dir.listFiles();
for(File f : files){
if(f.isDirectory()){
//递归了。
writeToArr(f, searchSuffix, al);
}else{
if(searchSuffix.accept(dir, f.getName())){
System.out.println(f);
al.add(f);
}
}
}
} }

  

上一篇:TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人


下一篇:Educational Codeforces Round 2 E. Lomsat gelral 启发式合并map