我想使用Ruby从一个文件夹中获得所有文件名。
当前回答
如果你用空格创建目录:
mkdir "a b"
touch "a b/c"
你不需要转义目录名,它会自动完成:
p Dir["a b/*"] # => ["a b/c"]
其他回答
如果你用空格创建目录:
mkdir "a b"
touch "a b/c"
你不需要转义目录名,它会自动完成:
p Dir["a b/*"] # => ["a b/c"]
就我个人而言,我发现这对于在文件夹中循环文件最有用,前瞻性安全:
Dir['/etc/path/*'].each do |file_name|
next if File.directory? file_name
end
在IRB上下文中,您可以使用以下命令获取当前目录中的文件:
file_names = `ls`.split("\n")
你也可以在其他目录上这样做:
file_names = `ls ~/Documents`.split("\n")
你可能还想使用Rake::FileList(如果你有Rake依赖):
FileList.new('lib/*') do |file|
p file
end
根据API:
filelist是懒惰的。当给出可能的glob模式列表时 要包含在文件列表中的文件,而不是搜索文件 结构来查找文件,FileList保存后者的模式 使用。
https://docs.ruby-lang.org/en/2.1.0/Rake/FileList.html
Dir.new('/home/user/foldername').each { |file| puts file }
推荐文章
- RVM不是一个函数,用' RVM use…’不会起作用
- 如何将文件指针(file * fp)转换为文件描述符(int fd)?
- 了解Gemfile。锁文件
- 如何确定一个数组是否包含另一个数组的所有元素
- 是什么导致这个ActiveRecord::ReadOnlyRecord错误?
- 最好的打印散列的方法
- 如何删除文件中的特定行?
- Rails:dependent =>:destroy VS:dependent =>:delete_all
- 我可以在不包含Ruby模块的情况下调用实例方法吗?
- 如何将新项目添加到哈希
- 测试一个Ruby类是否是另一个类的子类
- 什么时候使用Struct vs. OpenStruct?
- 数组到哈希Ruby
- 使用Java重命名文件
- 我如何让红宝石打印一个完整的回溯而不是截断一个?