Rubyで、はじめて仕事用のプログラムを作りました。
よく使うし、これはとても役に立ちます。
こうしたらいいとか、気の付いたことがあれば教えてください。
# 以下、プログラム(インデントは全角スペースなので、copyしてもエラーが出ます)
ipath = "px1600" #input path
name_h = "r1" #name header
count = 0
Dir.open(ipath).each{|file|
if file =~ /(.*)\.(JPG|jpg)$/
count += 1
name_c = ("00" + count.to_s).slice(-2,2)
File.rename(ipath + "/" + file, ipath + "/" + name_h + name_c + ".jpg")
end
}
2008/1/31
とても大きな問題がありました。ファイルが消失する場合があります。
変更前と変更後に同じ名前があるとき、ファイルが消滅する可能性があります。
実際、このプログラムを2回続けて実行すると、消失することがあります。
2008/1/31
Dir.open(...).each{...} # 推測ですが、closeされないのではないか?
Dir.open(...){|d| d.each{|f| ...}} # やっぱりこうかな?
とにかく、ある程度、試用してから公表すべきだよね。
とにかくうれしくて、ついつい、やってしまった。(後悔)
2008/2/10
変換元と変換後のフォルダを別にすることにして解決
0 件のコメント:
コメントを投稿