【发布时间】:2021-03-13 16:33:25
【问题描述】:
给定文件夹结构:
FolderA
|_FolderB
|_FolderC
|_File5
|_FolderD
|_File3
|_File4
|_File1
|_File2
我正在尝试编写一个小应用程序来打印所有文件夹名,然后是所有文件名。输出应如下所示:
FolderA
FolderB
FolderC
FolderD
File1
File2
File3
File4
File5
到目前为止,我的尝试如下所示:
public class FileList {
public static void main(String[] args) {
File rootFile = new File("FolderA");
File[] files = rootFile.listFiles();
System.out.println("Root file path: " + rootFile.getAbsolutePath() + "\n");
List<File> folderList = new LinkedList<File>();
List<File> fileList = new LinkedList<File>();
listFilesAndFolders(files, rootFile, folderList, fileList);
extractFromList(folderList);
extractFromList(fileList);
}
private static void listFilesAndFolders(File[] fList, File directoryName, List<File> folderList, List<File> fileList) {
// Get all files from a directory.
if(fList != null) {
for (File file : fList) {
if (file.isFile()) {
fileList.add(file);
} else if (file.isDirectory()) {
folderList.add(file);
}
}
}
}
private static void extractFromList(List<File> list) {
for (File item : list) {
System.out.println(item.getName());
}
}
}
不幸的是,它只打印出 FolderA 的直接内容,而不是 anf 子文件或目录,所以我只得到:
FolderB
FolderC
file2
file1
如何更改此设置以获取所有子文件和文件夹?
【问题讨论】: