你如何过滤Ruby Find.find()结果?

ros*_*han 4 ruby find

Find.find("d") {|path| puts path}
Run Code Online (Sandbox Code Playgroud)

我想排除某些类型的文件,说*.gifdirectories.

PS:我总是可以在我的块中添加代码来检查文件名和目录类型,但我希望find自己为我过滤文件.

Bar*_*cat 8

我不认为你可以告诉发现这样做.你可以尝试使用Dir#[],它接受文件globs.如果您正在寻找特定类型的文件,或者可以使用文件glob模式语言过滤的文件,则可能更适合.

例如

Dir["dir/**/*.{xml,png,css,html}"]
Run Code Online (Sandbox Code Playgroud)

会找到目录d下的所有xml,png,css和html文件.

查看文档以获取更多信息.