import java.io.File;
import java.io.IOException;

public class FileRenamePolicy {
  
  public File rename(File f) {		//File f´Â ¿øº» ÆÄÀÏ
    if (createNewFile(f)) return f;	//»ý¼ºµÈ f°¡
    
    //È®ÀåÀÚ°¡ ¾ø´Â ÆÄÀÏ ÀÏ¶§ Ã³¸®
    String name = f.getName();
    String body = null;
    String ext = null;

    int dot = name.lastIndexOf(".");
    if (dot != -1) {	//È®ÀåÀÚ°¡ ¾øÀ»¶§
      body = name.substring(0, dot);
      ext = name.substring(dot);
    } else {			//È®ÀåÀÚ°¡ ÀÖÀ»¶§
      body = name;
      ext = "";
    }

    int count = 0;
    //Áßº¹µÈ ÆÄÀÏÀÌ ÀÖÀ»¶§
    while (!createNewFile(f) && count < 9999) {		
      count++;
      String newName = body + count + ext;
      f = new File(f.getParent(), newName);
    }
    return f;
  }

  private boolean createNewFile(File f) {	
    try {
      return f.createNewFile();		//Á¸ÀçÇÏ´Â ÆÄÀÏÀÌ ¾Æ´Ï¸é
    }catch (IOException ignored) {
      return false;
    }
  }
}
