C# 以事务方式切换两个文件?

C# 以事务方式切换两个文件?,c#,.net,file,io,C#,.net,File,Io,我有a.tmp和b.tmp。我喜欢将a重命名为b,将b重命名为a,但是a.tmp必须始终存在。是否可以进行事务性重命名 我在windows上使用C#。但是,我可以使用cmd/shellexecute来使用windows内置的其他东西使用File.OpenWrite并将b.tmp的内容写入a.tmp。它将覆盖a.tmp的内容,而不会将其从文件夹中删除 参考资料:如果您使用的是Vista或更高版本,并且使用NTFS,那么您还可以看看类似的TxF包装器。它使用基于内核事务管理器的NTFS事务,并且假定

我有a.tmp和b.tmp。我喜欢将a重命名为b,将b重命名为a,但是a.tmp必须始终存在。是否可以进行事务性重命名


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

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


参考资料:

如果您使用的是Vista或更高版本,并且使用NTFS,那么您还可以看看类似的TxF包装器。它使用基于内核事务管理器的NTFS事务,并且假定与
TransactionScope
配合得很好,因此如果需要,您还可以将其用于数据库和多台计算机


是的,对于您的用例来说,这可能是完全过火了,但我只想在这里略谈一下,因为您明确地询问了事务性文件系统操作。

将a.tmp的内容复制到c.tmp,通过
cmd/c move/Y this file that file
使用控制台move/Y,然后将c.tmp重命名为b.tmp

a.tmp必须始终存在
-为什么?@KonradMorawski,因为如果它不存在,我将不得不重写并花费大量时间进行调试:x+1。我最终得到了一个不同的解决方案,然后是这两个答案。这很简单。我会在一两个小时后把我的答案贴出来