1

これを行うメソッドを書きたい

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

このメソッドは、最初の2つのファイル名を含む配列を返します

このメソッドを作成するにはどうすればよいですか?

4

2 に答える 2

3

を使用しDir::globます。

Dir::glob("#{dir}/#{name}.*")
于 2012-07-28T01:01:18.573 に答える
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
于 2012-07-28T02:11:57.913 に答える