码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-09-17 23:28:49      阅读:1911      评论:0      收藏:0      [点我收藏+]

标签:

方法一:

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);
                }
            }
        }
    }
     
     
     
 
}

  

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

标签:

原文地址:http://www.cnblogs.com/a757956132/p/4817847.html

(1)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!