两种方法, 一种是递归也就是dfs, 另外一种是非递归的方式,也就是bfs
下面贴上代码…… 比较简单 就是简单的dfs 和bfs的应用
package package_A;
import java.io.File;
import java.util.LinkedList;
public class FileReader {
public void traversalFile(String filePath) {
File file = new File(filePath);
System.out.println(file.exists());
if (true == file.exists()) {
// dfsFiles(file);
bfsFiles(file);
}
else {
System.out.println(filePath + "is not exists");
}
}
public void dfsFiles(File file) {
if (false == file.isDirectory()) {
System.out.println(file.getName());
return;
}
else {
System.out.println(file.getName());
for (File f : file.listFiles()) {
dfsFiles(f);
}
}
}
public void bfsFiles(File file) {
LinkedList<File> fileList = new LinkedList<File>();
if (false == file.isDirectory()) {
System.out.println(file.getName());
}
else {
for (File f : file.listFiles()) {
if (true == f.isDirectory()) {
fileList.add(f);
}
else {
System.out.println(f.getName());
}
}
while (!fileList.isEmpty()) {
File f = fileList.removeFirst();
System.out.println(f.getName());
for (File temp : f.listFiles()) {
if (true == temp.isDirectory()) {
fileList.add(temp);
}
else {
System.out.println(temp.getName());
}
}
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String filePath = "e:\\test";
FileReader fileReader = new FileReader();
fileReader.traversalFile(filePath);
}
}