【问题标题】:Is there any sort of File system transaction mechanism available to .net application?.net 应用程序是否有任何类型的文件系统事务机制?
【发布时间】:2010-03-11 15:42:46
【问题描述】:

我正在为正在编写的应用程序实现一个简单的更新机制,更新过程的最后一部分是将当前应用程序的可执行文件从 myApp.exe 重命名为 myApp.old.exe,然后重新命名从 myApp.new.exe 下载并更新文件到 myApp.exe。

我想找到一种方法使这两个操作成为原子操作,因为如果我的应用程序在重命名之后和重命名新版本之前崩溃(出于任何原因,例如小行星坠落在电力线上),它将陷入无法使用常用快捷方式重新启动的状态,因此无法完成更新。

那么有没有办法让更新失效安全?

【问题讨论】:

    标签: .net transactions filesystems


    【解决方案1】:

    在 2008/Vista 上是的,虽然它没有暴露。此时,NTFS 在文件系统/内核级别获得了文件系统事务。

    请检查:

    http://www.michaelckennedy.net/blog/2007/12/07/SystemTransactionsAndWindowsVistaNTFSUpdated.aspx

    http://www.codeguru.com/cpp/misc/misc/fileio/article.php/c9987

    http://xavierdecoster.wordpress.com/2009/10/18/transactional-ntfs-txf/

    他们有代码示例。

    【讨论】:

      猜你喜欢
      • 2018-03-13
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 2012-01-14
      • 2010-11-01
      相关资源
      最近更新 更多