自分メモ: 指定したディレクトリ内に一意のファイル名を作るロジック
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") のようにコールします
# こんな方法もあるよ、というのがあったら教えてください