【发布时间】:2011-11-16 06:23:44
【问题描述】:
我有一个 java 类用于列出给定目录的文件。它适用于只有文件而没有子目录的目录。但是如果里面有子目录,就会给出 java.lang.StackOverflowError 异常。这是类以及 main() 方法:
package test;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class DisplayFilesAndFolders {
public static void main(String[] args) {
try {
List<File> files = getFileList();
for(File file : files ){
System.out.println(file);
}
}
catch(Exception e) {
e.printStackTrace();
}
}
public static List<File> getFileList() throws FileNotFoundException{
String sPath = "C:\\Users\\owner\\Desktop\\Screen Shot\\";
File filePath = new File(sPath);
List<File> fileList = new ArrayList<File>();
File[] files = filePath.listFiles();
List<File> fileandFolderList = Arrays.asList(files);
for (File file : fileandFolderList) {
fileList.add(file);
if (file.isDirectory()) {
List<File> innerFileList = getFileList();
fileList.addAll(innerFileList);
}
}
return fileList;
}
}
感谢您的宝贵时间。
【问题讨论】: