java代码遍历目录下的所有文件(查找对应目录下的所有文件)

来源:互联网 发布:unity3d销毁物体 编辑:程序博客网 时间:2024/06/02 01:22

今天有个朋友向我问了个问题,说是想用java代码看一个路径下的文件怎么看,于是随手写了下面一点代码,供不懂或不太了解的小牛牛们学习学习哈。


import java.io.*;class Test {public static void main(String[] args)throws IOException {test("D:\\");}public static void test(String path){    //path为目录File file = new File(path);   File[] files = file.listFiles();     //遍历该目录所有文件和文件夹对象for(int i = 0; i<files.length;i++){if(files[i].isDirectory()){test(files[i].toString());       //递归操作,逐一遍历各文件夹内的文件}else {if(!files[i].isDirectory())System.out.println(files[i]);   //只打印文件,不打印文件夹}}}

再来补充一下,好几种方法可以查找当前目录的文件。这个没用递归所以只能找当前目录的文件,要找所有文件的自己在下面的方法上用下递归吧,方法其实很多很多,我就列几种吧。

//实现FilenameFilter接口public static void test3(){File file = new File("D:\\");NameFilter filter = new NameFilter();String[] str = file.list(filter);for (int i = 0; i < str.length; i++) {System.out.println(str[i]);}}//匿名内部类public static void test4(){File file = new File("D:\\");String[] str = file.list(new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {// TODO Auto-generated method stubif(name.endsWith(".java")||name.endsWith(".txt"))return true;return false;}});for (int i = 0; i < str.length; i++) {System.out.println(str[i]);}}//FileFilterpublic static void test5(){File file = new File("D:\\");File[] listFiles = file.listFiles(new FileFilter() {@Overridepublic boolean accept(File pathname) {// TODO Auto-generated method stubif (pathname.isFile()&&pathname.getName().endsWith("java")) {return true;}return false;}});for (int i = 0; i < listFiles.length; i++) {System.out.println(listFiles[i].getName());}}



原创粉丝点击