一个遍历文件路径的Java测试类
本文参考《Java编程思想 第四版》
1.实现代码
package testpackage;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class DirectoryWalkTest {
static List<File> listDirectory = new ArrayList<File>();
static List<File> listFile = new ArrayList<File>();
public static void walk(File infile){
File[] fileArr = infile.listFiles();
for(File fs : fileArr){
if(fs.isDirectory()){
listDirectory.add(fs);
//System.out.println(fs.getName()+" is a directory.");
walk(fs);
}
else{
listFile.add(fs);
//System.out.println(fs.getName()+" is a file.");
//System.out.println(fs.getName().substring(0,fs.getName().length()-4)+" is a file.");
}
}
}
public static void main(String[] args) {
String infile = "C:\\Users\\Administrator\\Desktop\\1";
File file = new File(infile);
walk(file);
// for(File file : listFile) //全局变量不能用到临时变量中
// System.out.println(fs.getName());
for(File fs : listFile)
System.out.println(fs.getName());
for(File fs : listDirectory)
System.out.println(fs.getName());
}
}
2.总结
使用File类的对象的listFiles()方法可以获得并返回对象所指向路径下所有的文件和路径的File对象数组。
我们使用isDirectory()和判断文件对象是否是路径。
如果遇到的是路径,我们使用递归的方式再次获得路径下的文件或者路径。
起始路径下的所有路径对象被保存在静态List对象listDirectory中,文件对象被保存在静态List对象listFile中。