尝试递归地列出路径中的所有文件和文件夹。
一切正常,直到我得到一个带空格的文件夹名称。在这种情况下,当我尝试获取带有 f.list()
的文件列表时或f.listFiles()
,都返回 null
。
当我在 Windows 上测试时,我尝试将所有空格替换为“%20”,但结果相同。
文档说:
Returns null if this abstract pathname does not denote a directory, or if an I/O error occurs.
如何列出带有空格文件夹名称的文件和文件夹?
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());
}
}
}
最佳答案
您的代码也可以很好地处理带有空格的文件夹名称。但我建议使用 Java 8 中更简单的方法,看看这是否有效。
Files.find(Paths.get(path),
Integer.MAX_VALUE,
(filePath, fileAttr) -> fileAttr.isRegularFile())
.forEach(System.out::println);
关于Java 递归文件列表为空格名称文件夹返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56526252/