【问题标题】:Is File.renameTo() atomic in Oracle Java 6 and Windows?Oracle Java 6 和 Windows 中的 File.renameTo() 是原子的吗?
【发布时间】:2012-01-01 07:54:51
【问题描述】:

File.renameTo() 的文档说:“此方法的行为的许多方面本质上是平台相关的:重命名 (...) 可能不是原子的...”

这很模糊,我需要消除歧义。这个方法在 WinXP 和更新版本的 Oracle Java 6 中是原子的吗?

【问题讨论】:

  • 我怀疑这取决于您是重命名目录中的文件、在文件系统中移动文件还是在文件系统之间移动文件(即复制和删除)

标签: java file file-io


【解决方案1】:

基于这个答案xpost

“Win32 不保证原子文件元数据操作。我会提供引用,但没有 - 没有书面或书面保证的事实意味着同样重要”

没有。

【讨论】:

    【解决方案2】:

    由于 win32 历来不提供对原子文件移动/重命名的任何支持,因此这种可能性极小。

    他们在 Vista 中为此添加了函数,因此 Java7 中的新文件函数实际上可能会使用这些函数 - 不知道。但是对于 XP,你就不走运了。

    【讨论】:

      猜你喜欢
      • 2013-07-16
      • 2014-01-18
      • 2013-02-23
      • 2017-02-14
      • 2011-07-16
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      • 1970-01-01
      相关资源
      最近更新 更多