将文件和文件夹添加到工作表

如何遍历包含子文件夹和文件的文件夹并将它们放入文件列表和目录列表中?


我试着只放文件。我出去了,也许有更好的方法?


public List<File> getFileList(String directoryPath, ArrayList<File> files) {

    File directory = new File(directoryPath);

    File[] filesList = directory.listFiles();

    for (File file : filesList) {

        if (file.isFile()) {

            if (!(file.isDirectory())) {

                if (file.getName().substring(file.getName().indexOf(".")).equals(".xml")) {

                    files.add(file);

                }

            }

        } else if (file.isDirectory()) {

            this.getFileList(file.getAbsolutePath(), files);

        }

    }

    return files;

}

我想要总共有两个包含目录和文件的列表。


浮云间
浏览 89回答 1
1回答

狐的传说

AFile不能同时拥有两者File#isDirectory并且File#isFile同时为真。所以这if&nbsp;(file.isFile())&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!(file.isDirectory()))&nbsp;{没有必要。第一个if足以作为File普通文件而不是目录。您尝试仅收集以.xml.&nbsp;请注意,测试以第一个点开头的文件名部分.并不是执行此操作的稳定方法。考虑一个名为foo.bar.baz.xml.&nbsp;您的方法将检查是否.bar.baz.xml等于.xml。检查此答案以了解如何以稳定的方式执行此操作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java