pukiwikiのファイル名を文字列に変換 by ruby

pukiwikiのファイル名について
attachの中の余分なファイルを消したいと思っているのですが、
CBE2CBA1B7BFBCEDBEEC_A5DEA5B8A5C3A5AFA5A2A5EDA1BCB3CEBBA62E786C73
↑のようなファイル名ばかりなのでどれが不要でどれが必要なのかわからなくて困っています。
こういったよくわからない文字の羅列を普通のファイル名に戻すといったことはできないでしょうか?

ということで、perlのコードが紹介されている。
自分も変換する必要に迫られたので、rubyのコードを書いてみた。

require 'kconv'
Dir.foreach("./euc/") {|inputFileName|
if File.file?("./euc/"+inputFileName)
#出力ファイル名(デコードしておく)
outputFileName = inputFileName.scan(/([0-9A-F]{2})/).map{|a| a[0].hex.chr}.flatten.join("").gsub(/\//,'_')+".txt"
File::open("./euc/"+inputFileName) {|inputFile|
File::open("./sjis/"+outputFileName,'w'){|outputFile|
inputFile.each {|line|
#ついでに、文字コードをsjisに変換
outputFile.print line.kconv(Kconv::SJIS,  Kconv::EUC)
outputFile.print "\n"
}
}
}
end
}

日本語のファイル名がうまく戻せていないのは、linuxマシン上のファイルシステムの問題かこのコードの問題かちょっとわからない。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です