web-dev-qa-db-ja.com

Ruby on rails

Ruby on Railsで、指定したディレクトリからファイル名を読み取りたいのですが、コードやその他のリンクを提案できますか?

ありがとう

22
Adnan Khan

Dir.entries("target_dir")を使用することをお勧めします

ドキュメントを確認してください ここ

27
Stobbej

配列内の特定のフォルダーの下にあるすべてのファイルを取得する場合:

files = Dir.glob("#{Rails.root}/private/**/*")

#=> ["/home/demo/private/sample_test.ods", "/home/demo/private/sample_test_two.ods", "/home/demo/private/sample_test_three.ods", "/home/demo/private/sample_test_one.ods"]
21
Sumit Munot

フィルタリングされたファイルのリストを取得する場合は、Dir.globを使用することもできます。

Dir.glob("*.rb")
# => ["application.rb", "environment.rb"]
10
Dylan Markow

基本的にはFile.basename(file)でファイル名を取得できます

Dir.glob("path").map{ |s| File.basename(s) }
5
erimicel

Railsでは、_Rails.root.join_を使用する必要があります。これはよりクリーンです。

files = Dir.glob(Rails.root.join(‘path’, ‘to’, ‘folder’))

次に、ファイルパスを含む配列を取得します

1
escanxr

最初に、ターゲットフォルダへのパスを正しく作成する必要があります

たとえば、ターゲットフォルダが「app」フォルダの「models」の場合

target_folder_path = File.join(Rails.root, "/app/models")

そして、これはすべてのファイル名を含む配列を返します

Dir.children(target_folder_path)

また、このコードは「。」なしの配列を返します。および「..」