很棒的目录递归处理

原来一直是通过自己实现递归调用来处理目录,今天在《RubyProgramming》一书中看到,在ruby中居然是有专门的库“find.rb”来实现这个功能的,非常强大。

一个例子代码:


require "find"


IGNORES = [/^\./] #以.开头的目录不进行处理

def listdir(top)
Find.find(top){ |path|
if FileTest.directory?(path)
dir,base = File.split(path)
IGNORES.each{ |re|
if re =~ base
Find.prune #和next相比是整个目录都不处理,而next则对子目录还是进行处理
end
}
puts "目录:"<<path
else
puts "文件:"<<path
puts "文件名:" <<File.basename(path)
if File.basename(path).downcase! =~/\.jpg$/ #判断后缀名是否是jpg
puts "文件是图片"
end
end

}
end

listdir(ARGV[0])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值