为复制的文件生成文件名

时间:2012-10-19 06:55:17

标签: java file io

当您将文件复制并粘贴到同一目录中时,我希望获得与Windows相似的行为。

例如,如果您复制/粘贴名为foo.txt的文件,则会创建foo Copy.txt,如果再粘贴一次,则会创建foo Copy(2).txt,如果您复制/ {粘贴foo Copy.txtfoo Copy Copy.txt已创建。

是否有Java实用程序功能可以执行此操作?我查看了File.createTempFile,但它生成的文件名太长,包含类似UID的子字符串。

2 个答案:

答案 0 :(得分:0)

通过将FileChooser与“showSaveDialog”方法结合使用,您将获得所需的结果,因为java正在使用现有文件的操作系统行为。

答案 1 :(得分: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);