2010-07-20 5 views

Répondre

6

Peut-être quelque chose comme cela fonctionne pour vous:

origin = '/test_dir' 
destination = '/another_test_dir' 

Dir.glob(File.join(origin, '*')).each do |file| 
    if File.exists? File.join(destination, File.basename(file)) 
    FileUtils.move file, File.join(destination, "1-#{File.basename(file)}") 
    else 
    FileUtils.move file, File.join(destination, File.basename(file)) 
    end 
end 

Meilleures salutations.

3

Le code ci-dessus fonctionne, mais peu d'erreur, vous utilisez if File.exists?(file), qui vérifie si le fichier se termine dans le dossier/sous-dossier d'origine (ce qui est inutile car il existe déjà). Vous devez vérifier si le fichier existe déjà dans le dossier de destination. En raison de cette syntaxe, le "else" n'est jamais exécuté. Et tous les fichiers sont nommés comme "1-filename". Correct serait d'utiliser

if File.exists? File.join(destination, File.basename(file)) 
Questions connexes