Un petit bout de script qui m'a fait économiser pas mal de temps ;)
Change l'extension de tous les fichiers d'un répertoire et ses sous-répertoires (ici de .kml en .xml).
Ne fonctionne pas si vos noms de fichiers contiennent des '.'
Change l'extension de tous les fichiers d'un répertoire et ses sous-répertoires (ici de .kml en .xml).
Ne fonctionne pas si vos noms de fichiers contiennent des '.'
require 'fileutils.rb'
Dir['**/*.kml'].each do |file|
puts file
filename = file.split('.')[0]
# FileUtils.cp("#{filename}.kml", "#{filename}.xml")
# FileUtils.mv("#{filename}.kml", "#{filename}.xml")
end
3 commentaires:
Tu pourrais avoir quelquechose de plus générique en utilisant last au lieu de [0].
Ca te permettrait de traiter tes fichiers même s'ils ont des . dans leur nom, style a.b.kml.
Oui je me doute qu'on peut faire mieux (last est une bonne idée, c'est plus clair que [0]).
Dans mon cas tout les noms de fichiers étaient du même style: xxx.kml donc mon script était suffisant ;)
Ou alors utiliser File.basename ...:
Dir['**/*.kml'].each do |file|
puts file
new_name = File.basename(file,'.kml') + ".xml"
# FileUtils.cp(file, new_file)
# FileUtils.mv(file, new_file )
end
mais aussi:
Dir['**/*.kml'].each {|file| FileUtils.cp(file, file.sub(/\.kml$/,'.xml')) }
;)
Enregistrer un commentaire