我想讓我的程序打印我的計算機上的所有文件的巨大列表。我的問題是,它只打印第一個硬盤驅動器的第一個文件夾中的文件,當我要它打印位於我的計算機上的所有文件時。任何想法我在這裏做錯了什麼?謝謝。遍歷Java中的所有文件
這裏是代碼我使用:
主營:
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
ArrayList<File> roots = new ArrayList();
roots.addAll(Arrays.asList(File.listRoots()));
for (File file : roots) {
new Searcher(file.toString().replace('\\', '/')).search();
}
}
}
和搜索器類:
import java.io.File;
public class Searcher {
private String root;
public Searcher(String root) {
this.root = root;
}
public void search() {
System.out.println(root);
File folder = new File(root);
File[] listOfFiles = folder.listFiles();
for (File file : listOfFiles) {
String path = file.getPath().replace('\\', '/');
System.out.println(path);
if (!path.contains(".")) {
new Searcher(path + "/").search();
}
}
}
}
雖然有重複的問題(http://stackoverflow.com/questions/3154488/best-way -to-iterate-through-a-directory-in-java and http://stackoverflow.com/questions/4917326/how-to-iterate-over-the-files-of-a-certain-directory-in-java ),一些答案是包括Java 7,而其他的則不可用rs已發佈。 – rajah9