1

同じディレクトリにファイルをコピーして貼り付けたときに、Windows で得られるものと同様の動作を取得しようとしています。

たとえば、 というファイルをコピーして貼り付けるとfoo.txtが作成されfoo Copy.txt、もう一度貼り付けると が作成され、foo Copy(2).txtコピーして貼り付けるfoo Copy.txtfoo Copy Copy.txtが作成されます。

これを行うJavaユーティリティ関数はありますか? 調べましFile.createTempFileたが、生成されるファイル名が長すぎて、UID のような部分文字列が含まれています。

4

2 に答える 2

0

場合によっては、最初に作業を行うだけで、API に感謝することができます。次に、独自のユーティリティ メソッドを記述できます。

File original = new File("build.xml");
String path = original.getAbsoluteFile().getParent();
String name = original.getName();
String ext = name.substring(name.indexOf("."));
name = name.substring(0, name.indexOf("."));
name = path + File.separator + name;

int index = 1;
File copy = new File(name + " (" + index + ")" + ext);
while (copy.exists()) {
    index++;
    copy = new File(name + " (" + index + ")" + ext);
}
System.out.println(copy);
于 2012-10-19T20:27:44.060 に答える
0

FileChooser を「showSaveDialog」メソッドと組み合わせて使用​​すると、必要な結果が得られます。これは、Java が既存のファイルに対して OS の動作を使用しているためです。

于 2012-10-19T07:22:09.120 に答える