尝试递归列出路径中的所有文件和文件夹。
一切正常,直到我得到一个隔开的文件夹名称。在这种情况下,当我尝试使用f.list()
或f.listFiles()
获取文件列表时,都返回null
。
在Windows上进行测试时,我尝试用'%20'替换所有空格,并以相同的结果结尾。
文档说:
如果此抽象路径名不表示目录,则返回null;或者 如果发生I / O错误。
如何列出文件名和文件夹的文件夹名称?
String path = "c:/Users/Ioman/AppData/Local/Archivos temporales de Internet";
File f = new File(path);
fileNames(f);
private void fileNames(File f) {
System.out.println("Folder name : " + f.getAbsolutePath());
File[] files = f.listFiles();
for (File file : files) {
if (file.isDirectory()) {
fileNames(file);
} else {
System.out.println(file.getAbsolutePath());
}
}
}
答案 0 :(得分:0)
您的代码也可以与带空格的文件夹名称配合使用。但是我建议从Java 8使用更简单的方法,看看是否可行。
Files.find(Paths.get(path),
Integer.MAX_VALUE,
(filePath, fileAttr) -> fileAttr.isRegularFile())
.forEach(System.out::println);