我有以下代码。我找不到问题的根源。
public class ConsoleApp1 {
public static void main(String[] args) {
allFiles("C:\\");
}
private static void allFiles(String root) {
File ro = new File("e:\\");
File[] flist = ro.listFiles();
for (File i: flist) {
if (i.isFile()) {
System.out.println(i.getAbsolutePath());
} else {
allFiles(i.getAbsolutePath());
}
}
}
}
我将来要将此添加到swing应用程序中,来自按钮的调用将获取列表并将其填充到JTree
任何建议中也会有所帮助。
答案 0 :(得分:4)
您在E:\上递归调用File构造函数。由于无限循环,您最终会收到stackoverflow
错误。将构造函数参数更改为使用root
变量。
private static void allFiles(String root) {
File ro = new File(root);
File[] flist = ro.listFiles();
for(File i : flist){
if(i.isFile()) {
System.out.println(i.getAbsolutePath());
}
else {
allFiles(i.getAbsolutePath());
}
}
}