3

ruby on rails を使用していますが、ファイル名の最後の数文字が欠落しているファイルを開く方法があるかどうか疑問に思っています。

例: 私のファイル名は「/folder/files/A2222_revA.pdf」です。ただし、これらのファイル名は、時間の経過とともに A2222_revA から A2222_revB、A2222_revC に変更されています。パスと変更されない名前 (A2222) を変数として保存しました。私の目標は、A2222 という名前のファイルを開くことです...その特定のプレフィックスを持つファイルが複数存在することはないためです。

指定したフォルダ内で次のファイル名を英数字順に開く方法はありますか?

次のようなこれらのファイルを表示するコントローラーがあります。

  def view
    @drawing = Drawing.find(params[:id])
    @path = @drawing.draw_path(@drawing)

    send_file( @path,
    :disposition => 'inline',
    :type => 'application/pdf',
    :x_sendfile => true )
  end 

draw_path メソッドは次のようになります。

  def draw_path(drawing)
    folder = drawing[:file_location]
    file_name = drawing[:drawing_number]
    path = "X://engineering/shop\ prints/"+folder+"/"+file_name+".pdf"
    return path
  end

明らかに、この方法は完全ではなく、さらにロジックを追加する必要があります。

4

3 に答える 3

4

1 つの方法は、プレフィックスに一致するファイルのリストを取得することです。たとえば、次のようになります。

files = Dir.glob(File.join(path, "A2222_rev*"))
于 2013-11-08T14:58:18.347 に答える
2

したがって、特定の時点で実際にファイルが 1 つしかない場合は、次のことができます。

path = Dir["/folder/files/A2222_*.pdf"].first

番号?

于 2013-11-08T14:59:35.130 に答える
0

glob関数を使用してファイル名を取得し、File.open に渡します

于 2013-11-08T14:58:10.210 に答える