自分メモ: 指定したディレクトリ内に一意のファイル名を作るロジック

File.createTempFile ではもう一息な場合に使います

  private static int NUMBERING_DIGIT = 5;
  /**
   * @param baseDir 指定ディレクトリパス
   * @param prefix ファイル名の接頭辞
   * @param surfix ファイル名の接尾辞
   * @return 
   */
  public static String generateUniqueFilepath
                       (String baseDir, String prefix, String surfix) {
    String resultingFilepath = null;

    // BaseDirの存在の確認
    File baseDirectory = new File(baseDir);
    if (!baseDirectory.exists())
      return null;

    long l=0;
    NumberFormat formatter = NumberFormat.getInstance();
    formatter.setMinimumIntegerDigits(NUMBERING_DIGIT);
    formatter.setGroupingUsed(false);
    while(true) {
      l++;
      resultingFilepath = baseDir+"/"+prefix+formatter.format(l)+surfix;
      File targetFile = new File(resultingFilepath);
      if (!targetFile.exists())
        break;
    }
    return resultingFilepath;
  }

使い方例:
C:\Users に test00001.txt のようなファイルを作成する場合はgenerateUniqueFilepath("C:\\Users", "test", ".txt") のようにコールします

# こんな方法もあるよ、というのがあったら教えてください