我想使用Ruby从一个文件夹中获得所有文件名。
当前回答
一个简单的方法是:
dir = './' # desired directory
files = Dir.glob(File.join(dir, '**', '*')).select{|file| File.file?(file)}
files.each do |f|
puts f
end
其他回答
下面的代码片段精确地显示了目录内的文件名称,跳过子目录和“。”,“..”带点的文件夹:
Dir.entries("your/folder").select { |f| File.file? File.join("your/folder", f) }
在Ruby 2.5中,你现在可以使用Dir.children。它以数组的形式获取文件名,除了"."和".."
例子:
Dir.children("testdir") #=> ["config.h", "main.rb"]
http://ruby-doc.org/core-2.5.0/Dir.html#method-c-children
Dir.entries(folder)
例子:
Dir.entries(".")
来源:http://ruby-doc.org/core/classes/Dir.html method-c-entries
您还有快捷方式选项
Dir["/path/to/search/*"]
如果你想在任何文件夹或子文件夹中找到所有Ruby文件:
Dir["/path/to/search/**/*.rb"]
当加载操作目录中的所有文件名时,您可以使用
Dir.glob (*)
这将返回应用程序正在运行的上下文中的所有文件(注意,对于Rails,这是应用程序的顶级目录)
您可以在这里(https://ruby-doc.org/core-2.7.1/Dir.html#method-c-glob)进行额外的匹配和递归搜索
推荐文章
- 如何从查找“类型d”中排除此/ current / dot文件夹
- Rails中的OO设计:在哪里放置东西
- 从包含文件名的路径获取不包含文件名的完整路径
- 给定一个类,查看实例是否有方法(Ruby)
- 如何拉特定的目录与git
- Git:从另一个分支复制目录中的所有文件
- PHP,获取没有文件扩展名的文件名
- 在日历应用程序中建模重复事件的最佳方法是什么?
- 如何在远程系统上使用Ansible任务移动/重命名文件
- 如何创建一个私有类方法?
- 从java.io.File获取java.nio.file.Path对象
- 无法安装pg gem
- 双* (splat)操作符做什么
- 如何使用Ruby on Rails进行HTTP请求?
- 用c#编写数据到CSV文件