【发布时间】:2012-01-01 07:54:51
【问题描述】:
File.renameTo() 的文档说:“此方法的行为的许多方面本质上是平台相关的:重命名 (...) 可能不是原子的...”
这很模糊,我需要消除歧义。这个方法在 WinXP 和更新版本的 Oracle Java 6 中是原子的吗?
【问题讨论】:
-
我怀疑这取决于您是重命名目录中的文件、在文件系统中移动文件还是在文件系统之间移动文件(即复制和删除)
File.renameTo() 的文档说:“此方法的行为的许多方面本质上是平台相关的:重命名 (...) 可能不是原子的...”
这很模糊,我需要消除歧义。这个方法在 WinXP 和更新版本的 Oracle Java 6 中是原子的吗?
【问题讨论】:
【讨论】:
由于 win32 历来不提供对原子文件移动/重命名的任何支持,因此这种可能性极小。
他们在 Vista 中为此添加了函数,因此 Java7 中的新文件函数实际上可能会使用这些函数 - 不知道。但是对于 XP,你就不走运了。
【讨论】: