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 件のコメント:
コメントを投稿