Mais j'ai aussi besoin d'un moyen de les renommer en cas de conflits.Ruby on Rails: Comment déplacer tous les fichiers d'un dossier vers un autre dossier?
Comme if exists? then file.name = "1-"+file.name
ou quelque chose comme ça
Mais j'ai aussi besoin d'un moyen de les renommer en cas de conflits.Ruby on Rails: Comment déplacer tous les fichiers d'un dossier vers un autre dossier?
Comme if exists? then file.name = "1-"+file.name
ou quelque chose comme ça
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.
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))