在Ruby中,可以使用递归函数来要求一个目录及其子目录中的所有文件。以下是一个示例代码:
def get_all_files(directory)
files = []
Dir.foreach(directory) do |file|
next if file == '.' || file == '..'
path = File.join(directory, file)
if File.directory?(path)
files += get_all_files(path)
else
files << path
end
end
files
end
# 使用示例
directory = '/path/to/directory'
all_files = get_all_files(directory)
puts all_files
上述代码定义了一个名为get_all_files
的递归函数,它接受一个目录路径作为参数,并返回该目录及其子目录中的所有文件路径。在函数内部,使用Dir.foreach
遍历目录中的所有文件和子目录。对于每个文件或子目录,判断是否为目录,如果是目录,则递归调用get_all_files
函数获取子目录中的文件路径,并将结果合并到files
数组中;如果是文件,则将文件路径添加到files
数组中。最后,返回包含所有文件路径的files
数组。
使用示例中,将目标目录的路径赋值给directory
变量,然后调用get_all_files
函数获取所有文件路径,并将结果打印输出。
请注意,上述代码仅获取文件路径,并未对文件进行任何操作。如果需要对文件进行进一步处理,可以根据实际需求在代码中添加相应的逻辑。
云+社区沙龙online
云+社区技术沙龙[第17期]
Elastic 实战工作坊
Elastic 实战工作坊
Elastic 实战工作坊
Elastic 实战工作坊
云原生正发声
Techo Day 第三期
领取专属 10元无门槛券
手把手带您无忧上云