记录一下,类似需求日后拷皮修改就可以。
#encoding:utf-8
def search_file_by_type(source_dir,file_types,&block)
Dir.entries(source_dir).each do |file|
next if %w[. ..].include?(file)
if File.file?(source_dir + File::SEPARATOR + file)
file_types.split('|').each do |type_name|
if file.downcase.end_with?(type_name.downcase)
if block_given?
block.call source_dir + File::SEPARATOR + file
end
end
end
elsif File.directory?(source_dir + File::SEPARATOR + file)
if block_given?
search_file_by_type(source_dir + File::SEPARATOR + file,file_types,&block)
end
end
end
end
search_file_by_type('D:/OpenSource/lame-3.100','.c|.h') do |file|
puts file
end
这段代码定义了一个名为`search_file_by_type`的函数,它遍历指定目录及其子目录,寻找特定类型的文件(如.c和.h)。当找到匹配的文件时,如果提供了回调函数,将调用该函数处理找到的文件路径。
807

被折叠的 条评论
为什么被折叠?



