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