使用lambda查找某些扩展名的文件

月经:

作为练习,我决定重写我的一些代码以使用lambda表达式。该代码应检查给定的字符串是否是具有.pdf扩展名的文件的路径,然后应显示满足此要求的所有文件。这就是我已经想出的:

Files.newDirectoryStream(Paths.get(args[0]), path -> path.toFile()
                    .toString()
                    .endsWith(".pdf"))
                    .forEach(System.out::println);

该代码在某一点上失败:它还显示目录。您能否告诉我以下代码为何无法编译?

Files.newDirectoryStream(Paths.get(args[0]), path -> path.toFile()
                    .isFile()
                    .toString()
                    .endsWith(".pdf"))
                    .forEach(System.out::println);
dasblinkenlight:

您的第二个代码无法编译,因为isFile返回boolean一旦有了boolean,文件名就消失了;即使您可以将其转换为String,匹配其后缀".pdf"仍将失败。

您正在测试两个单独的条件,因此您应该在两个单独的检查中对其进行测试:

Files.newDirectoryStream(Paths.get(args[0]), path ->
    Files.isRegularFile(path) &&  path.toString().endsWith(".pdf")
).forEach(System.out::println);

请注意,path.toString().endsWith(...)无需转换Path即可进行检查File

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

查找带有某些文件扩展名的文件C ++

查找具有某些扩展名的文件

如何使用ag在具有某些扩展名的文件中查找文本?

如何使用busybox查找来删除(或保留)某些文件扩展名?

使用正则表达式查找以 / 不带某些类型的扩展名结尾的文件

使用多个文件扩展名来查找文件

使用scp复制具有某些扩展名的文件

使用PowerShell递归查找文件扩展名的数量

使用ls查找以字符结尾的文件,忽略扩展名

grep,但仅某些文件扩展名

查找无扩展名的文件

如何查找具有特定扩展名的文件,而仅排除当前目录中的某些名称?

如何使用grep排除某些与某些扩展名不匹配的文件?

使用grep和map查找扩展名为.png的文件名,但输出时不带扩展名

递归查找具有某些扩展名的图像

使用 awk 在某些列添加不带扩展名的文件名

从具有多个扩展名的文件名中删除某些扩展名

如何通过扩展名使用正则表达式过滤文件,但排除某些文件?

如何使用php检查文件夹中的某些文件扩展名

更改文件夹中的某些文件扩展名

如何通过使用扩展名进行搜索来查找文件名

查找以扩展名或无扩展名的特定字符结尾的文件名

查找大写扩展名的文件名

PowerShell脚本使用扩展名查找文件并排除文件夹

如何使用7zip命令行递归压缩仅某些文件扩展名?

使用ls和grep列出具有某些扩展名的文件

在使用某些Shell Magic(例如,替换扩展名)更改后,在单个文件上运行命令

Sublime Text:如何自动使用某些文件扩展名的特定编码打开?

C#WPF-仅允许某些文件扩展名