1. ホーム
  2. java

Javaでユニークで短いファイル名を生成する最も良い方法は何ですか?

2023-11-13 05:34:24

質問

UUIDはかなり長いので、必ずしも使いたいとは思いません。

ファイルはそのディレクトリ内で一意であればよいのです。

一つ思いつくのは File.createTempFile(String prefix, String suffix) を使うことも考えられますが、ファイルが一時的でないため、それは間違っているようです。

同じミリ秒に2つのファイルが作成されるケースを処理する必要があります。

どのように解決するのですか?

まあ、3引数版を使えばいいんですけどね。 File.createTempFile(String prefix, String suffix, File directory) で、好きなところに置くことができます。 あなたが指示しない限り、Javaはそれを他のファイルと区別して扱いません。 唯一の欠点は、ファイル名が少なくとも8文字であることが保証されていることです (最低3文字のプレフィックスと、関数が生成する5文字以上の文字)。

それが長すぎる場合は、ファイル名 "a" で開始して、まだ存在しないものを見つけるまで "b", "c" などをループすることができると思います。