Find.find("d") {|path| puts path}我想排除某些类型的文件,比如*.gif和directories。
PS: --我总是可以在我的块中添加代码来检查文件名和目录类型,但是我希望find本身能够为我过滤文件。
发布于 2010-09-24 21:50:10
我认为您无法告诉find做什么,that.You可以尝试使用Dir#[],它接受文件全局。如果您正在寻找特定类型的文件,或者可以使用文件glob模式语言进行筛选的文件,则可能会更适合。
例如
Dir["dir/**/*.{xml,png,css,html}"]将找到目录d下的所有xml、png、css和html文件。
有关更多信息,请访问医生们。
发布于 2010-09-25 12:47:10
您不能让find这样做,但是Find可能会有所帮助:在块中,您需要检查当前路径是否是您想要排除的路径之一;如果是,那么调用Find#prune。这似乎是使用Find时的标准成语。
如果您决定使用Dir#[],则可以对其结果调用reject,传递一个块以排除某些类型的文件。但是,请注意,据我所知,Dir#[]在筛选之前读取d目录的所有内容,而Find#prune保证如果在传递给Find#find的块中调用它,则不会读取经过修剪的子目录的内容。
https://stackoverflow.com/questions/3790979
复制相似问题