我想写一个执行此操作的方法
def search_for_filenames(dir, name)
# goes to the directory and returns a list of files that match
# the given name, regardless of extension
end
例如,如果名称是test
,我的目录包含以下内容
test.png
test.txt
something_else.dat
该方法将返回包含前两个文件名
的数组我该如何编写此方法?
答案 0 :(得分:3)
使用Dir::glob
。
Dir::glob("#{dir}/#{name}.*")
答案 1 :(得分:0)
它会比Dir::glob
更快但实际上有时可能需要更多时间才能运行。无论如何,这就是我所做的。但请使用Dir::glob
。
def search_for_filenames(dir, name)
result_files = []
Dir.new(dir).each do |file|
if /^#{name}\.\w+$/.match file
result_files << file
return result_files if result_files.size == 2
end
end
result_files
end