如何使用java在同一目录中创建多个具有相同名称的文件?

时间:2012-05-31 06:23:41

标签: java file directory

根据我的要求,我需要将文件上传到指定的目录,稍后经过一些修改后,我需要将同一个文件上传到同一目录,这里不应该覆盖以前的文件意味着文件必须保存在相同的目录具有相同的名称(这里我有一个假设,例如,如果我的文件是abc.txt,修改后,如果我上传修改后的文件,它可以保存为abc(1).txt)。我该如何解决我的问题?任何人都可以帮我解决这个问题。

提前致谢。

3 个答案:

答案 0 :(得分:1)

在while循环中使用File.createNewFile()。当且仅当文件不存在时,它才会创建文件。这是线程安全的,因为API保证了原子性。

在循环中检查文件是否存在File.exists()并不能保证这一点。

答案 1 :(得分:0)

如果您可以保留上传次数,则可以为每个特定文件增加一个数字,并将其添加到您的文件名中(例如foo_1.txt或者您想要的话) 如果你不能,你可能想要查看所有文件并检查它们是否适合您的命名方案。然后你可以提取最高数字,将其递增1并将其附加到新文件中。

答案 2 :(得分:0)

检查File的方法,如:

exists()

如果文件存在,您可以计算一个数字并创建一个新的文件名,如

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

只要找到不存在的文件名,就可以创建和检查新文件。