我是ruby on rails的新手,我想从指定的目录中读取文件名。任何人都可以建议代码或任何其他链接?
由于
答案 0 :(得分:26)
我建议您使用Dir.entries("target_dir")
查看文档here
答案 1 :(得分:17)
如果要将所有文件放在数组中的特定文件夹下:
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"]
答案 2 :(得分:9)
如果您想要提取已过滤的文件列表,还可以使用Dir.glob
:
Dir.glob("*.rb")
# => ["application.rb", "environment.rb"]
答案 3 :(得分:2)
您基本上可以使用File.basename(file)
来获取文件名
Dir.glob("path").map{ |s| File.basename(s) }
答案 4 :(得分:1)
要仅列出文件名,最推荐的解决方案是:
irb(main)> Dir.children(Rails.root.join('app', 'models'))
=> ["user.rb", "post.rb", "comment.rb"]
答案 5 :(得分:0)
使用Rails,您应该使用更干净的Rails.root.join
。
files = Dir.glob(Rails.root.join(‘path’, ‘to’, ‘folder’))
然后您将获得一个包含文件路径的数组
答案 6 :(得分:0)
首先,您必须正确创建目标文件夹的路径
例如,当目标文件夹为“ app”文件夹中的“ models”时
target_folder_path = File.join(Rails.root, "/app/models")
然后返回包含所有文件名的数组
Dir.children(target_folder_path)
此代码还返回不包含“。”和“ ..”的数组。
答案 7 :(得分:0)
如果您要从Rails根文件夹中查找相对路径,则只需使用Dir
,例如:
Dir["app/javascript/content/**/*"]
将返回,例如:
["app/javascript/content/Rails Models.md", "app/javascript/content/Rails Routing.md"]