class File

Public Class Methods

check_fname_overlapping(fname) click to toggle source

ファイル名が重複していれば (1) などを付加して返す

@return [String]
# File lib/kaki/utils/check_fname_overlapping.rb, line 4
def self.check_fname_overlapping(fname)
  return fname unless File.exist?(fname)
  dir = File.dirname(fname)
  base = File.basename(fname)
  m = /(.+)(\..+)$/.match(base)
  result, suffix = m ? [m[1], m[2]] : [base, ""]
  
  begin
    result = if (m1 = /(.+)\((\d+)\)$/.match(result))
      m1[1] + "(#{m1[2].to_i + 1})"
    else
      result + "(1)"
    end
  end while File.exist?(r = File.join(dir, result + suffix))
  r
end