WindowsからSCPで音楽ファイルやらデジカメ画像やらを移したら、見事に文字化けしたので、ファイル名のエンコードを変えるスクリプトをRubyで書いた。ディレクトリはその前に変換しちゃったので、ファイルだけの変換だけど… Ruby で文字コード関係扱うのは、 kconv てのを使うだけでいいらしく楽チンだ。るびまを参考にした\(^o^)/ なぜか、chdir しないとディレクトリやファイルが見付かりませんっていわれてしまう(´・ω・`)
1 #! /usr/bin/ruby -w 2 require 'kconv' 3 4 allDirs = Dir::glob("/home/chu/**/").sort { 5 |a,b| b.split('/').size < => a.split('/').size 6 } 7 8 allDirs.each{|dir| 9 Dir::chdir(dir) 10 files = Dir::entries(dir) 11 for file in files 12 if File::ftype(file) == "file" 13 encoding = Kconv.guess(file) 14 if encoding != 6 15 newName = Kconv.kconv(file, Kconv::UTF8, Kconv::AUTO) 16 File.rename(file,newName) 17 end 18 end 19 end 20 }
こ、これは使える・・!
改良したっっっっっっっっっっっっっっっw
そ、そうかっ!
Dir.foreach(‘.’) を Dir.foreach(dir) にすれば良かったのかあああああああああああ!!!!!