我想使用Ruby从一个文件夹中获得所有文件名。
当前回答
在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("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["/path/to/search/*"]
如果你想在任何文件夹或子文件夹中找到所有Ruby文件:
Dir["/path/to/search/**/*.rb"]
这是对我有效的方法:
Dir.entries(dir).select { |f| File.file?(File.join(dir, f)) }
Dir。Entries返回一个字符串数组。然后,我们必须提供文件的完整路径file .file?,除非dir等于我们当前的工作目录。这就是File.join()的原因。
就我个人而言,我发现这对于在文件夹中循环文件最有用,前瞻性安全:
Dir['/etc/path/*'].each do |file_name|
next if File.directory? file_name
end
推荐文章
- 是否可以在MiniTest中运行单个测试?
- 如何在Ruby中生成a和b之间的随机数?
- 如何在Python中获得所有直接子目录
- 即使模板文件存在,Flask也会引发TemplateNotFound错误
- 无法安装gem -未能建立gem本地扩展-无法加载这样的文件——mkmf (LoadError)
- 如何复制在bash所有目录和文件递归?
- 如何在Ruby中创建文件
- 什么是Ruby文件。开放模式和选项?
- Ruby数组到字符串的转换
- 如何分割(块)一个Ruby数组成X元素的部分?
- Ruby中“or”和||的区别?
- __FILE__宏显示完整路径
- 如何测试参数是否存在在轨道
- 文件名中允许的字符
- 在Ruby中不创建新字符串而修饰字符串的规范方法是什么?