我想使用Ruby从一个文件夹中获得所有文件名。
当前回答
如果您想获得包含符号链接的文件名数组,请使用
Dir.new('/path/to/dir').entries.reject { |f| File.directory? f }
甚至
Dir.new('/path/to/dir').reject { |f| File.directory? f }
如果你不想使用符号链接,请使用
Dir.new('/path/to/dir').select { |f| File.file? f }
如其他答案所示,如果你想递归地获得所有文件,使用dir .glob('/path/to/dir/**/*')而不是dir .new('/path/to/dir')。
其他回答
Dir.entries(folder)
例子:
Dir.entries(".")
来源:http://ruby-doc.org/core/classes/Dir.html method-c-entries
在获取目录中的所有文件名时,此代码段可用于拒绝两个目录[。, . .]和以a开头的隐藏文件。
files = Dir.entries("your/folder").reject {|f| File.directory?(f) || f[0].include?('.')}
Dir.new('/home/user/foldername').each { |file| puts file }
一个简单的方法是:
dir = './' # desired directory
files = Dir.glob(File.join(dir, '**', '*')).select{|file| File.file?(file)}
files.each do |f|
puts f
end
当加载操作目录中的所有文件名时,您可以使用
Dir.glob (*)
这将返回应用程序正在运行的上下文中的所有文件(注意,对于Rails,这是应用程序的顶级目录)
您可以在这里(https://ruby-doc.org/core-2.7.1/Dir.html#method-c-glob)进行额外的匹配和递归搜索
推荐文章
- 如何可靠地打开与当前运行脚本在同一目录下的文件
- 在c#中从URI字符串获取文件名
- 如何找到包含匹配值的哈希键
- 如何在Rails中找到当前的路由?
- 将列表的Python列表写入csv文件
- 在Ruby中->运算符叫什么?
- Rails参数解释?
- Ruby中DateTime和Time的区别
- 如何从代理服务器后面更新Ruby Gems (ISA-NTLM)
- 如何用另一个键替换哈希键
- 如何使用Bash创建一个文件夹,如果它还不存在?
- attr_accessor和attr_accessible的区别
- 如何从Ruby文件路径中获得没有扩展名的文件名
- rvm安装失败:“rvm不是一个函数”
- 学习Ruby on Rails