1.常用的递归遍历:
public void traverseFolderByRecursion(String path){
File file=new File(path);
if(file.exists()){
File[] files=file.listFiles();
for(File thisFile : files){
if(thisFile.isDirectory()){
traverseFolderByRecursion(thisFile.getAbsolutePath());
}else{
System.out.println(thisFile.getName());
}
}
}else{
System.out.println("该文件夹为空!");
}
}
2.使用非递归的方法来遍历文件夹:
/**
* 非递归遍历
*/
public void traverseFolder(String path){
LinkedList<File> list = new LinkedList<File>();
File file =new File(path);
if(file.exists()){
File[] files=file.listFiles();
for(File thisFile :files){
if(thisFile.isDirectory()){
list.add(thisFile);
continue;
}
System.out.println(thisFile.getName());
}
}else{
System.out.println("该文件将夹为空!!!");
}
File tempFile;
for(Iterator itr=list.iterator();itr.hasNext();){
tempFile=list.removeFirst();
for(File thisFile:tempFile.listFiles()){
if(thisFile.isDirectory()){
list.add(thisFile);
continue;
}
System.out.println(thisFile.getName());
}
}
}