java读取一个路径下的所有文件

来源:互联网 发布:js的for循环执行顺序 编辑:程序博客网 时间:2024/06/14 00:50

    最近使用ssh框架的时候需要把后缀为.hbm.xml的文件配置进spring的配置文件,但是由于这样以.hbm.xml结尾的文件太多,不可能一个一个去写,于是我便尝试使用java去自动生成。下面直接贴代码:

import java.util.Scanner;import java.io.File;public class Test {    public static void main(String[] args){        int num=0;        try{            Scanner sc=new Scanner(System.in);            System.out.println("请输入路径:");            String filepath = sc.nextLine();//读取字符串型输入filepath            sc.close();            File file= new File(filepath);            if(!file.isDirectory()){  //通过isDirectory()判断当前路径是不是文件夹                System.out.println("这不是一个文件夹的路径");            }            else if(file.isDirectory()){                String[] filelist = file.list();    //获取当前文件夹下的所有子文件及子文件夹 保存在filelist                System.out.println("这个文件夹长度为"+filelist.length);                for(int i = 0; i< filelist.length ; i++){                    File readfile = new File(filepath+"\\"+filelist[i]);    //将输入路径及其子路径相连接                    if(!readfile.isDirectory()){                        if(filelist[i].endsWith("hbm.xml")){    //如果是以hbm.xml就把它生成标签                            System.out.println("<value>"+filelist[i]+"</value>");                            num++;                        }                    }                }            }        }        catch(Exception e){            System.out.println(e.getMessage());        }        System.out.println(num);    }}

    通过这段代码就可以把输入路径的所有以hbm.xml的文件生成<value></value>标签,将输出的标签复制到Spring配置文件就好了。

    ps:这里是默认输入路径下面全都是文件,而没有文件夹,如果需要继续访问所输入路径下的文件夹,可以将这些代码进行封装,进行递归调用,这样就可以实现访问输入路径下的子文件及子文件夹下的文件,直到所有被访问到的都是文件而不是文件夹。