我有a.tmp和b.tmp。我喜欢将a重命名为b和b,但是a.tmp必须始终存在。是否有可能以事务方式重命名?
我在Windows上使用C#。但是我可以使用cmd / shellexecute来使用内置于windows中的其他东西
答案 0 :(得分:2)
使用File.OpenWrite
并将b.tmp
的内容写入a.tmp
。它将覆盖a.tmp
的内容,而不会将其从文件夹中删除。
参考:http://msdn.microsoft.com/en-us/library/system.io.file.openwrite.aspx
答案 1 :(得分:1)
如果您使用Vista或更高版本并使用NTFS,您还可以查看像Transactional NTFS这样的TxF包装器。它使用基于内核事务管理器的NTFS事务,并且假定integrates与TransactionScope
很好,因此如果需要,您也可以将它与数据库一起使用,而不仅仅是一台计算机。
是的,这对你的用例来说可能是完全矫枉过正的,但我只想在这里删除这些信息,因为你明确询问了事务性文件系统操作。
答案 2 :(得分:0)
将a.tmp的内容复制到c.tmp,通过cmd /c move /y thisfile thatfile
使用控制台move / Y,然后将c.tmp重命名为b.tmp