1

私の要件に従って、指定されたディレクトリにファイルをアップロードする必要があります。後でいくつかの変更を加えた後、同じファイルを同じディレクトリにアップロードする必要があります。ここでは、前のファイルを上書きしないでください。同じ名前(ここでは、たとえば、ファイルが abc.txt の場合、変更後に変更したファイルをアップロードすると abc(1).txt として保存できるという仮定があります)。どうすれば問題を解決できますか? 誰でも私がこの問題から抜け出すのを手伝ってくれますか?

前もって感謝します。

4

3 に答える 3

1

File.createNewFile()while ループで使用します。ファイルが存在しない場合にのみ、ファイルが作成されます。API は原子性を保証するため、これはスレッドセーフです。

ループ内でファイルの存在を確認しても、File.exists()そのような保証はありません。

于 2012-05-31T06:35:34.937 に答える
0

次のようなファイルのメソッドを確認してください。

存在する()

ファイルが存在する場合は、数を数えて、次のような新しいファイル名を作成できます。

newFilename = MessageFormat.format("({0}){1}", counter++, originalFilename);
File newFile = new File(originalFile.getParentFile(),newFilename);

存在しないファイル名を見つければ、新しいファイルを作成して確認できます。

于 2012-05-31T06:38:39.733 に答える
0

アップロードの数を維持できる場合は、特定のファイルごとに数を増やして、ファイル名 (たとえば、foo_1.txt または必要に応じて) に対応させることができます。それができない場合は、すべてのファイルを調べて、それらが命名スキーマに適合します。次に、最大数を抽出し、それを 1 増やして、新しいファイルに追加できます。

于 2012-05-31T06:36:00.267 に答える