2010-11-16 65 views
0

編寫一個小腳本複製一些文件,但我得到的錯誤:的Ruby語法錯誤:文件複製

fileops.rb:6: syntax error, unexpected ')'

繼承人我的代碼

require 'ftools' 

plays = ['RomeoAndJuliet.txt', 'Hamlet.txt', 'TheTempest.txt', 'TheMerchantofVenice.txt', 'AMidSummerNightsDream.txt'] 

plays.each do |filename| 
    File.new("/clean/_cleaned" + filename, w+) 
    File.syscopy(filename, "/clean/_cleaned" + filename) 
end 

所有支架似乎是他們應該是。有什麼建議麼?

回答

5

w +應在引號中。

File.new("/clean/_cleaned" + filename, "w+") 
+0

謝謝:)還是一個Ruby初學者:) – 2010-11-16 22:26:38

+0

沒問題。我們都去過那裏。 – 2010-11-16 22:29:06

+0

Hrm,這段代碼似乎根本不起作用,有沒有更好,正確的方法來做我正在嘗試的? – 2010-11-16 22:34:56

5

您可以使用Fileutils.cp複製文件:

require 'fileutils' 
Fileutils.cp source, dest 
2
require 'fileutils' 
plays = %w[RomeoAndJuliet Hamlet TheTempest TheMerchantofVenice AMidSummerNightsDream] 
plays.each do |play| 
    Fileutils.cp "#{play}.txt", "/clean/_cleaned#{play}.txt" 
end 

或者,所有.txt文件複製,而不是一個明確的清單目錄,:

Dir['*.txt'].each do |file| 
    Fileutils.cp "#{file}", "/clean/_cleaned#{file}" 
end 
+0

我冒昧解決你的第二個例子。 'file'包含了文件名,所以在'#{file}'後面的第二行中不需要添加'.txt'。 – Veger 2010-11-17 08:50:12

+0

你是對的;謝謝! – Phrogz 2010-11-17 14:04:27