我有一个目录,其中包含提供给客户端的数据文件,例如,/srv/data
。在进行一系列更新时,我正在处理 /srv/data_tmp
,在操作结束时,我想自动将 data
替换为 data_tmp
。当目标是现有目录时,File.renameTo()
总是为我返回 false。我该怎么做?
最佳答案
恐怕你做不到。至少不是在 SO 级别。因此,即使您在 Java 应用程序的上下文中管理“原子性”,您也无法保证其他一些“流氓”进程会在实际文件系统级别进行干扰。
如果我是你,我会读 this article (很老,但应该给你一些想法)然后看看你是否可以将建议的方法移植到 more modern version .
哦,等等,有人做了 this已经!
显然你不是the first one to ask here , 要么
祝你好运...
关于java - 如何在 Java 中以原子方式将一个目录替换为另一个目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4390012/