Java递归文件列表为空的名称文件夹返回null

时间:2019-06-10 12:16:50

标签: java file

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

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

1 个答案:

答案 0 :(得分:0)

您的代码也可以与带空格的文件夹名称配合使用。但是我建议从Java 8使用更简单的方法,看看是否可行。

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