遍历一个目录中的每个文件

如何用ruby编写循环,以便在每个文件上执行一块代码

我是ruby新手,我认为实现这一点的方法是一个do-each循环。
ruby文件将从与我要循环通过的目录不同的目录执行

我尝试了目录foreach,但无法使其工作

正如其他人所说,Dir::foreach是一个很好的选择。但是,请注意Dir::foreachDir::entries将始终包括(当前目录和父目录)。您通常不想处理它们,因此可以使用Dir::each_childDir::children(如ma11hew28所建议)或执行类似操作:

Dir.foreach('/path/to/Dir')do|文件名|
下一步如果文件名=='.'或文件名=='..'
#处理剩余的文件&目录
终止

Dir::foreachDir::entries(以及Dir::each_childDir::children)还包括隐藏文件&目录。通常这是你想要的,但如果不是,你需要做些事情跳过它们

或者,您可能希望查看提供简单通配符匹配的Dir::glob

Dir.glob('/path/to/Dir/*.rb')do | rb_文件名|
#处理文件和文件;以.rb结尾的目录
终止

发表评论