2014-10-07 79 views
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"])返回。

我需要将它转换为字符串吗?或者甚至无法将文件移动到保存为变量的路径中?

回答

3

您可以将目录名称保存到一个变量,然后再用它:

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
相关问题