【发布时间】:2018-10-22 14:40:04
【问题描述】:
我有一个方法可以加载文件,进行一些更改,然后再次保存。但是,为了防止保存过程中出现异常,我创建了一个新文件并首先保存到该文件中(因为格式不正确的数据可能会在保存过程中导致异常)。保存完成后,我删除原始文件并将新文件重命名为原始文件的名称。
代码基本上是这样的:
MyDataClass.save(tempfile);
originalfile.delete();
tempfile.renameTo(originalfile);
问题是对 renameTo 方法的调用总是返回 'false' 并且新文件 (tempfile) 仍然使用它创建时使用的随机名称(原始文件 is 已删除)。
有人猜到重命名失败的原因吗?
【问题讨论】:
-
你能提供一个minimal reproducible example吗?我的猜测是您尝试根据原始名称重命名新文件,但原始文件已被删除,因此无法正常工作。
-
你关闭了你的
originalfile吗? -
我遇到的问题是,当我创建了一个最小/可验证的示例时(创建两个文件,每个文件只添加一个单词以进行识别,删除一个并使用剩余的 File-Object 重命名另一个) 它确实有效。这就是我如此困惑的原因。
-
@AnjuMaaka 很好,如果这个小例子有效,你能慢慢建立它,边做边测试,看看它在什么时候坏了,为什么?
-
操作系统是什么?
标签: java file filenames file-rename