2014-10-07 84 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
相關問題