1

我有 a.tmp 和 b.tmp。我喜欢将 a 重命名为 b 并将 b 重命名为 a 但是 a.tmp 必须始终存在。是否可以通过事务重命名?

我在 Windows 上使用 C#。但是我可以使用 cmd/shellexecute 来使用 Windows 内置的其他东西

4

3 回答 3

2

使用File.OpenWrite并写入b.tmpinto的内容a.tmp。它将覆盖 的内容,a.tmp而无需将其从文件夹中删除。

参考:http: //msdn.microsoft.com/en-us/library/system.io.file.openwrite.aspx

于 2012-08-24T19:31:28.060 回答
1

如果您在 Vista 或更高版本上使用 NTFS,您还可以查看 TxF 包装器,如Transactional NTFS。它使用基于内核事务管理器的 NTFS 事务,并且据说可以很好地集成TransactionScope因此如果需要,您还可以将它与数据库和不止一台计算机一起使用。

是的,这对于您的用例来说可能完全是矫枉过正,但我​​只是想在这里放弃这一点信息,因为您明确地询问了事务文件系统操作。

于 2012-08-24T19:46:46.383 回答
0

将 a.tmp 的内容复制到 c.tmp,使用控制台移动 /Y viacmd /c move /y thisfile thatfile然后将 c.tmp 重命名为 b.tmp

于 2012-08-24T21:17:51.247 回答