gpt4 book ai didi

java - 如何在 Java 7 中用 nio 替换 File.listFiles(FileFilter filter)?

转载 作者:太空狗 更新时间:2023-10-29 22:45:07 25 4
gpt4 key购买 nike

我有一些用 Java 6 编写的文件 I/0 遍历代码,试图将它移动到 Java 7 中的新 I/O,但我找不到任何替代此类代码的东西。

File[] files = dir.listFiles(AudioFileFilter.getInstance());

也就是说,没有办法只过滤文​​件的路径,它会返回文件列表,所以如果我想在它调用的方法中限制 File 的使用,我必须将每个文件转换为路径 (file.toPath),这看起来比较费力。

我确实看过 FileVisitor,但这似乎不允许您控制树的遍历方式,所以我认为它对我不起作用。

那么 Java 7 中的文件路径有多少替代品?

最佳答案

使用 Files#newDirectoryStreamDirectoryStream.Filter

代码如下:

DirectoryStream<Path> stream = Files.newDirectoryStream(dir, new DirectoryStream.Filter<Path>() {

@Override
public boolean accept(Path entry) throws IOException
{
return Files.isDirectory(entry);
}
});

for (Path entry: stream) {
...
}

顺便说一句,为了简单起见,我在上面的代码中省略了异常处理。

关于java - 如何在 Java 7 中用 nio 替换 File.listFiles(FileFilter filter)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14893205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com