我正在使用 Dir.glob 访问与通配符模式匹配的所有文件的集合。
Dir.glob( '**/*.txt' ) { |file_name|
parse file_name
}
因为这个 glob 调用是递归的,并且因为涉及很多文件,所以 glob 在 block 开始之前需要很长时间来构建文件数组。
我想要的是一种访问所有相同文件的方法,但在 Ruby“发现”每个文件后立即调用 block ,以便立即处理第一个文件,而不是等待整个目录树完成搜索。
有这样的构造吗?
最佳答案
您还可以使用find
和IO.popen
IO.popen("find . -name '*.txt'").each { |path| parse(path.chomp) }
关于ruby - 有没有比 Ruby 的 Dir.glob 更快的替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16487115/