TransactionScope与C#中的文件

ava*_*e70 16 c# scope transactions file transactionscope

我一直在使用TransactionScope来处理数据库,感觉还不错.我正在寻找的是以下内容:

using(var scope=new TransactionScope())
{               
    // Do something with a few files...
    scope.Complete();
}
Run Code Online (Sandbox Code Playgroud)

但显然这不起作用 - 如果有20个文件,并且第9个文件发生异常,所有之前的8个仍然保持更改而其余的保持不变 - 不执行回滚.那么,为文件实现类似范围的行为的最佳方法是什么?

我希望有一个简单的答案,但如果没有,你能给我一些指示,或者指点我的相关文章吗?

SLa*_*aks 7

您正在寻找由Windows Vista引入的Transactional NTFS.

这是一个托管包装器.

  • 仅供参考,微软正在考虑弃用Transactional NTFS.http://msdn.microsoft.com/en-us/library/windows/desktop/hh802690%28v=vs.85%29.aspx (4认同)
  • 他们现在在 MSDN 上提供了 [Alternatives to using Transactional NTFS](http://msdn.microsoft.com/en-us/library/hh802690(v=vs.85).aspx) 页面,尽管在阅读该页面后,我不得不说它*不是*替代品。 (3认同)
  • 不幸的是,他们的托管包装器将每个函数包装在自己的事务范围内.我必须创建重载,这允许我通过我自己的范围. (2认同)