如何在Ruby Scripting中列出目录内容?

时间:2013-07-30 20:54:54

标签: ruby

我找到了强大的模块FileUtils。但似乎无法找到列出内容的函数,即ls。有谁知道怎么做?

3 个答案:

答案 0 :(得分:2)

如果您正在寻找一个返回数组的方法,那么Dir.entries就是您想要的。

Dir.entries(dirname) -> (array)

这将列出用户主目录并返回一个数组

Dir.entries(ENV['HOME'])
=> [".",
 "..",
 ".bash_history",
 ".bash_profile",
 ".bashrc",
 ".CFUserTextEncoding",
 ".cheat",
 ".DS_Store",
 ".gem",
 ".gemrc",
 ".gist", ... etc.

另一种方法Dir.open返回目录对象而不是数组

 Dir.open(string) -> aDir

在用户主目录上使用Dir.open为您提供

 Dir.open(ENV['HOME'])
=> #<Dir:/Users/Brian>

答案 1 :(得分:0)

简单的答案是Dir

d = Dir.open '/home/dan/directoroy'

d是该目录内容的数组。

答案 2 :(得分:0)

使用Glob

在Ruby 2.0中,如果想要对哪些条目进行更细粒度的控制,可以使用Dir#entries来检索目录中的所有文件,或者使用诸如Dir['/tmp/*']Dir.glob '/tmp/*'之类的全局文件。返回,或者如果你想以递归方式检索文件/目录。