【问题标题】:Read files in directory on ruby on rails在 ruby​​ on rails 上读取目录中的文件
【发布时间】:2011-09-09 10:10:51
【问题描述】:

我是 ruby​​ on rails 的新手,我想从指定目录读取文件名。任何人都可以建议代码或任何其他链接吗?

谢谢

【问题讨论】:

  • 请不要自私,感谢人们在这里浪费的时间来帮助你,至少接受一个有效的答案。如果人们看到你那么自私,他们就不会再帮助你了。

标签: ruby-on-rails filenames


【解决方案1】:

我建议你使用Dir.entries("target_dir")

查看文档here

【讨论】:

    【解决方案2】:

    如果要获取数组中特定文件夹下的所有文件:

    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"]
    

    【讨论】:

      【解决方案3】:

      如果要拉出过滤后的文件列表,也可以使用Dir.glob

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

      【讨论】:

        【解决方案4】:

        你基本上可以用File.basename(file)获取文件名

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

        【讨论】:

          【解决方案5】:

          使用 Ruby on Rails,您应该使用 Rails.root.join,它更简洁。

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

          然后你会得到一个包含文件路径的数组。

          【讨论】:

            【解决方案6】:

            首先,您必须正确创建目标文件夹的路径

            例如,当您的目标文件夹是“app”文件夹中的“models”时

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

            然后返回一个包含所有文件名的数组

            Dir.children(target_folder_path)
            

            此代码还返回不带“.”的数组和“..”

            【讨论】:

              【解决方案7】:

              要仅列出文件名,最推荐的解决方案是:

              irb(main)> Dir.children(Rails.root.join('app', 'models'))
              => ["user.rb", "post.rb", "comment.rb"]
              

              【讨论】:

                【解决方案8】:

                如果您要从 Rails 根文件夹中查找相对路径,您可以使用 Dir,例如:

                Dir["app/javascript/content/**/*"]
                

                会返回,例如:

                ["app/javascript/content/Rails Models.md", "app/javascript/content/Rails Routing.md"]
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2010-09-12
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2020-12-08
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多