0

我希望将某些 .txt 文件从一个目录移动到另一个目录,我正在动态创建这些文件,其中包含存储为变量的版本号和日期/时间:

require 'fileutils'
version = '2.1.6.0'
time = Time.now.strftime("%Y%m%d%H%M%S")
dir = FileUtils.makedirs ("ruby/bar/#{version}/#{time}")

FileUtils.mv 'foo.txt', dir

目录创建成功,但是no implicit conversion of Array into String移动文件部分返回错误。

我试图通过添加来修改代码:

dir = dir.to_s

No such file or directory - (timings.txt, ["ruby/bar/2.1.6.0/20141007183424"])被退回。

我需要将其转换为字符串吗?或者甚至不可能将文件移动到保存为变量的路径?

4

1 回答 1

4

您可以将目录名称保存到变量中,然后重用它:

require 'fileutils'
version = '2.1.6.0'
time = Time.now.strftime("%Y%m%d%H%M%S")
dirname = "ruby/bar/#{version}/#{time}"
FileUtils.makedirs dirname

FileUtils.mv 'foo.txt', dirname

FileUtils.makedirs返回包含指向它创建的文件夹的路径的数组。这是一个数组,因为您可以使用多个文件夹调用它来创建:

FileUtils.makedir ["foo", "bar"]

如果要重用FileUtils.makedirs结果,则必须执行以下操作:

require 'fileutils'
version = '2.1.6.0'
time = Time.now.strftime("%Y%m%d%H%M%S")
dir = FileUtils.makedirs "ruby/bar/#{version}/#{time}"

FileUtils.mv 'foo.txt', dir.first
于 2014-10-07T17:42:46.423 回答