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

有帮助吗?

解决方案

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

复制文件

其他提示

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

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

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

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

在Ruby中处理文件的最佳方法可能是 <代码>路径名 。它将来自几个基于文件的模块的类方法组合成一个易于使用的OOP类。因此,您不需要将值传递给类似于 Dir File 的方法,您只需在对象本身上调用该方法即可。

以下是如何打印直接子目录:

require 'pathname'

puts Pathname('some/directory').children.select(&:directory?)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top