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

}

  

时间: 2024-10-02 18:34:18

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

删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件

1 @echo off 2 ::删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件. 3 ::本例需要Win2003/Vista/Win7系统自带的forfiles命令的支持 4 rem 指定待删除文件的存放路径 5 set SrcDir=D:\ajaxtrain\web 6 rem 指定天数 7 set DaysAgo=0 8 rem 要删除的文件通配 9 set searchmast=*.html 10 set filename=D:\ajaxtrain\web\deletefil

Java 递归获取一个路径下的所有文件,文件夹名称

package com.readfile; import java.io.File; public class GetAllFiles { public static void main(String[] args) { //路径 这里写一个路径进去 String path="F:\\QQ文档"; //调用方法 getFiles(path); } /** * 递归获取某路径下的所有文件,文件夹,并输出 */ public static void getFiles(String path

Android-取出SDcard卡下指定后缀名的文件

Android--取出SDcard卡上指定后缀名的文件 1. import java.io.File; import java.io.FilenameFilter; /** * 后缀名过滤器 * @author ZLQ * */ public class FileNameSelector implements FilenameFilter{ String extension = "."; public FileNameSelector(String fileExtensionNoDot

java 获取某路径下的子文件/子路径

/** * 获取某路径下的子文件 * */ public static List<String> getSubFile(String path){ List<String> subFile = new ArrayList<>(); File file=new File(path); //确保该路径存在 if(file.exists()){ File[] tempList = file.listFiles(); //有子文件时 if (tempList.length>

Java基础知识强化之IO流笔记10:File类输出指定目录下指定后缀名的文件名称案例

1. 案例: 判断F盘下是否有后缀名为.jpg的文件,如果有的话,就输出这个文件名. 2. 案例代码如下: (1)思路是:先获取所有的文件和文件夹封装的对象,然后遍历的时候,依次判断,如果满足条件就输出. 1 package com.himi.filesdemo; 2 3 import java.io.File; 4 5 6 /** 7 * 判断F盘下是否有后缀名为.jpg的文件,如果有的话,就输出这个文件名 8 * @author hebao 9 * 10 */ 11 public class

Java获取项目路径下的方法(全)

平时写程序的时候,很多时候提示文件找不到,而抛出了异常,现在整理如下 一 相对路径的获得 说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目) String relativelyPath=System.getProperty("user.dir"); 上述相对路径中,java项目中的文件是相对于项目的根目录 web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于 tomcat安装目录\bin) 二 类加载目录的获得(

获取某路径下,最后被修改的文件

import osdef lu(path): filesn=os.listdir(path) filesn.sort(key=lambda x:os.path.getmtime(path+x)) #luf=path+filesn[-1] luf=os.path.join(path+filesn[-1]) return lufprint(lu("D:\\study\\python_api_test\\test1204\\")) 原文地址:https://www.cnblogs.com/c

一句话脚本系列之统计文件夹下各种后缀名的文件个数

欢迎转载!转载时请注明出处:http://blog.csdn.net/nfer_zhuang/article/details/42582425 引言 使用场景: 我所在的QQ群中最近聊的是热火朝天,也就导致着我的QQ缓冲文件夹的大小在疯涨,满500M的时候QQ客户端就会提示用户需要清除一下缓存文件夹了.其中缓冲文件夹中最大的部分就是各种图片文件,包括各种格式的图片.在删除前,我就想按照图片格式进行一下分类后备份到其他文件夹内.这个时候我就需要做一下统计了: 当前文件夹下有几种格式(后缀名)的图片

java批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码

原文:java批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码 源代码下载地址:http://www.zuidaima.com/share/1550463660264448.htm 今天有个需求,想把某个文件夹下所有后缀名为jsp的更改为ftl,本来想用bat实现对bat的高级语法也不太了解,后来发现还需要递归遍历所有的子文件夹,所以用java实现了一个功能一样的代码,有需要的牛人可以下载修改为自己想要的. 这样可以兼容windows和linux. package com.zuidaima