Java 递归文件列表为间隔名称文件夹返回空值



尝试递归列出路径中的所有文件和文件夹。

一切正常,直到我得到一个间隔的文件夹名称。在这种情况下,当我尝试获取带有 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());
        }
    }
} 

您的代码也适用于带空格的文件夹名称。但我建议使用Java 8中更简单的方法,看看这是否有效。

  Files.find(Paths.get(path),
            Integer.MAX_VALUE,
            (filePath, fileAttr) -> fileAttr.isRegularFile())
         .forEach(System.out::println);

最新更新