gpt4 book ai didi

java - File.renameTo() 失败

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:35:57 33 4
gpt4 key购买 nike

我有 eclipse 插件 jface 应用程序。线程通过 BufferedWriter 写入文件。写入完成后,我关闭缓冲区,然后尝试重命名文件。

但有时文件没有重命名!

我尝试在几次重试之间添加一些 Thread.Sleep(BIG_NUMBER),但这没有帮助。

看起来文件获得了某种锁定。 (当我杀死 jvm 时,我可以重命名文件)。

有什么我可以做的吗?

操作系统:Windows XP、Windows 7JAVA版本:1.5

最佳答案

File.RenameTo() 依赖于平台并依赖于满足一些条件才能成功重命名文件,更好的选择是使用

Path source = currentFile.toPath();
try {
Files.move(source, source.resolveSibling(formattedName));
} catch (IOException e) {
e.printStackTrace();
}

阅读更多 here .

来自 javadocs:

Many aspects of the behavior of this method are inherently platform-dependent: The rename operation might not be able to move a file from one filesystem to another, it might not be atomic, and it might not succeed if a file with the destination abstract pathname already exists. The return value should always be checked to make sure that the rename operation was successful.

请注意,Files 类定义了 move 方法,以独立于平台的方式移动或重命名文件。

关于java - File.renameTo() 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13826045/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com