- 非递归方式(有点类似二叉树的非递归遍历,采用链表来存储遍历到的文件夹,如果是文件就直接输出)
public void traverseFile(String path){
File[] fileArray;
File file=new File(path);
if(file.exits()){
LinkedList<File> list = new LinkedList<File>();
list.add(file);
while(!list.isEmpty()){
File fileFirst = list.removeFirst();
fileArray = fileFirst.listFiles();
for(File f:files){
if(f.isDirectory()){
System.out.println("文件夹:"+f.getAbsolutePath());
list.add(f);
}else{
System.out.println("文件:"+f.getAbsolutePath());
}
}
}
}else{
System.out.println("文件不存在!");
}
}
- 递归方式
public void traverseFile(String path){
File file = new File(path);
if(file.exits()){
File[] fileArray = file.listFiles();
for(File f : fileArray){
if(f.isDirectory()){
System.out.println("文件夹:"+f.getAbsolutePath());
traverseFile(f.getAbsolutePath());
}else{
System.out.println("文件:"+f.getAbsolutePath());
}
}
}else{
System.out.println("文件不存在!");
}
}