1

我正在研究 Java7 中的新功能。我想在给定特定输入目录的情况下返回 Collection 对象。

目前我正在使用(org.apache.commons.io)

Collection<File> files = FileUtils.listFiles(myInputFile, ...);

相反,我想做类似的事情:

Collection<Path> paths = listPathsUsingJava7(myInputPath, ...);

但是,我在示例/文档中没有看到任何具体的内容。我看到 DirectoryStreams,它似乎不做递归。我还看到了让您对当前对象执行操作而不是将其添加到集合中的 Vistor。

有没有人有一个以正确方式执行此操作的 Java7 示例?

谢谢!

4

1 回答 1

2

下一个 JDK7 代码会将文件夹和子文件夹中的所有文件添加到files.

    final List<Path> files = new ArrayList<>();
    Files.walkFileTree(Paths.get(myInputPath), new SimpleFileVisitor<Path>() {

        @Override
        public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
            files.add(file);
            return FileVisitResult.CONTINUE;
        }
    });
于 2012-02-06T14:48:07.917 回答