我正在研究Java7中的新功能。我希望在给定特定输入目录的情况下返回一个Collection对象。
目前我正在使用(org.apache.commons.io)
Collection<File> files = FileUtils.listFiles(myInputFile, ...);
相反,我想做类似的事情:
Collection<Path> paths = listPathsUsingJava7(myInputPath, ...);
但是,我在示例/文档中没有看到任何具体内容。我看到DirectoryStreams,似乎没有做递归。我还看到Vistors使你对当前对象采取行动,而不是将其添加到Collection。
有没有人有一个Java7示例,以正确的方式执行此操作?
谢谢!
答案 0 :(得分: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;
}
});