LoginSignup
6
5

More than 5 years have passed since last update.

既に同じ名前のファイルがある時は連番を付ける(黒魔術風味)

Posted at

ファイルを保存する時に既に同じ名前のファイルがあった時は連番を付けたくなったので書いたコード

例えば
piyopiyo.jpgというファイルを作ろうとした時に既に同じ名前のファイルがあれば、piyopiyo(1).jpg、
piyopityo(1).jpgというファイルも既にあれば、piyopiyo(2).jpg
というように以下piyopiyo(i).jpgで被っている限りiを増やしていきます。

def avoid_conflict_name name
  i = (i || i = 0).succ while File.exist?(ret = "#{name}#{i ? "(#{i})" : ""}.jpg")
  ret
end

ちょっと黒い所が見えちゃってるけど気にしない♡ ※黒魔術は用法用量を守って正しく使いましょう。

 

i = (i || i = 0).succ

とか

初回のループでの

"#{name}#{i ? "(#{i})" : ""}.jpg"

のiとか

代入されていないのに使える変数の仕様は IQ1450で美少女JSの先輩から、Rubyで無から有を生み出す方法を教わった を見てね♡

6
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5