2010-11-16 13 views
0

codage d'un petit script pour copier des fichiers, mais je reçois l'erreur:Ruby Erreur de syntaxe: Copie du fichier

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

Heres mon code

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 

Tous les supports semblent être là où ils devraient être. Aucune suggestion?

Répondre

5

w + doit être entre guillemets.

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

Merci :) Toujours un débutant Ruby :) –

+0

Pas un problème. Nous y avons tous été. –

+0

Hrm, ce code ne semble pas fonctionner du tout, y at-il une meilleure façon de faire ce que je veux? –

5

Vous pouvez utiliser Fileutils.cp pour copier un fichier:

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 

Ou, pour copier tous les fichiers .txt dans le répertoire, au lieu d'une liste explicite:

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

J'ai pris la liberté de fixer votre deuxième exemple. 'file' contient le nom du fichier compelete, donc pas besoin d'ajouter' .txt' dans la seconde après '# {file}'. – Veger

+0

Vous avez raison; Merci! – Phrogz