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マシン上のファイルシステムの問題かこのコードの問題かちょっとわからない。

カテゴリ:

トラックバック(0)

このブログ記事を参照しているブログ一覧: pukiwikiのファイル名を文字列に変換 by ruby

このブログ記事に対するトラックバックURL: http://mogya.com/mt/mt-tb.cgi/40

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、 もぎゃが 2007年9月 6日 22:56に書いたブログ記事です。

ひとつ前のブログ記事は「 Thank you という理由 」です。

次のブログ記事は「 「明日10時」「来週火曜日」で日付を扱うライブラリHumanDate 」です。

最近のコンテンツは インデックスページ で見られます。過去に書かれたものは アーカイブのページ で見られます。

Powered by
Movable Type