1

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

提前致谢。

4

3 回答 3

1

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

在循环中检查文件的存在File.exists()并不能为您提供这样的保证。

于 2012-05-31T06:35:34.937 回答
0

如果您可以保留上传的数量,您可以为每个特定文件增加一个数字并将其添加到您的文件名(例如 foo_1.txt 或您想要的任何内容)如果您不能,您可能想要浏览所有文件并检查它们是否适合您的命名模式。然后您可以提取最高数字,将其增加 1 并将其附加到您的新文件中。

于 2012-05-31T06:36:00.267 回答
0

检查File的方法,例如:

存在()

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

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

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

于 2012-05-31T06:38:39.733 回答