在 POSIX 系统上,rename(2) 提供原子重命名操作,包括覆盖目标文件(如果存在且权限允许)。
有没有办法在 Windows 上获得相同的语义?我知道 Vista 和 Server 2008 上的 MoveFileTransacted(),但我需要它来支持 Win2k 及更高版本。
这里的关键词是原子...解决方案不能以任何方式失败而导致操作处于不一致状态。
我看到很多人说这在 win32 上是不可能的,但我问你,真的吗?
如果可能,请提供可靠的引文。
最佳答案
参见 Win32 中的 ReplaceFile()
(http://research.microsoft.com/pubs/64525/tr-2006-45.pdf)
关于windows - 在 Windows 上是否可以进行原子文件重命名(覆盖)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/167414/