立即获取ruby中的子目录

时间:2009-04-28 22:58:08

标签: ruby file

我正在尝试编写一个简单的ruby脚本,它将文件复制到目录的直接子目录中。我怎么才能得到直接的子目录?

4 个答案:

答案 0 :(得分:61)

假设你只想要立即子目录,你可以使用Dir['*/'](结合了Micheal Sepcot和glenra的答案)。

答案 1 :(得分:15)

Dir.glob("**/")将返回当前目录下所有路径的数组。从那里,您可以过滤列表并使用File.copy(from, to)

复制文件

答案 2 :(得分:10)

如果您要找到所有立即子目录(只在您所在的位置以下一级),请尝试以下操作:

Dir.chdir("/some/path/you/want/to/check/below")
subdir_list=Dir["*"].reject{|o| not File.directory?(o)}

那就是:在某个地方更改目录,构造一个在那里找到的文件数组,拒绝那些不是目录的数组元素,并返回结果剔除的arrray。

答案 3 :(得分:0)

在Ruby中处理文件的最好方法是Pathname。它将来自几个基于文件的模块的类方法组合到一个易于使用的OOP类中。因此,您不需要像使用DirFile那样将值传递到方法中,只需在对象本身上调用该方法即可。

以下是打印直接子目录的方法:

require 'pathname'

puts Pathname('some/directory').children.select(&:directory?)