今天有个朋友向我问了个问题,说是想用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() { @Override public boolean accept(File dir, String name) { // TODO Auto-generated method stub if(name.endsWith(".java")||name.endsWith(".txt")) return true; return false; } }); for (int i = 0; i < str.length; i++) { System.out.println(str[i]); } } //FileFilter public static void test5(){ File file = new File("D:\\"); File[] listFiles = file.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { // TODO Auto-generated method stub if (pathname.isFile()&&pathname.getName().endsWith("java")) { return true; } return false; } }); for (int i = 0; i < listFiles.length; i++) { System.out.println(listFiles[i].getName()); } }