java - 如何在 Java 中以原子方式将一个目录替换为另一个目录?

标签 java file atomic directory

我有一个目录,其中包含提供给客户端的数据文件,例如,/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/

相关文章:

php - PhpMyAdmin 中的文件大小达到 34KB 限制

c++ - 如何使用原子增量和比较和交换操作处理整数溢出?

java - 为不同尺寸的 ImageView 再次下载 picasso 图像?

java - 使用 MockMvc 时主体为空

java - 如何使一个简单的函数通过线程运行

c++ - C++如何组合原子操作?

node.js - 从redis key nodejs弹出值的原子操作

java - 有没有更有效的方法来检查字符串中的字符?

java - 如何在 while 循环中读取以特殊字符串结尾的文件?

iphone - NSSearchPathForDirectoriesInDomains 解释混淆