C#中多个FileStreams的事务性写入

本文关键字:事务性 FileStreams | 更新日期: 2023-09-27 18:21:24

我应该得到多个具有相同扩展名的文件(例如,一个被拆分为几个档案的档案:rar、r00、r01等)。

我正试图找到一个解决方案,如果我得到的一个文件流无法写入,那么之前创建的所有成功文件都将被删除。就像事务性文件流编写器一样。

我遇到了.NET Transactional File Manager项目,它似乎正是我所需要的——只是它不适用于流,而是适用于文件路径。

在这一点上,我只看到两个选项:

  • 保留一个成功写入文件的列表,如果另一个失败,我会查看列表并全部删除
  • 通过FileStream将所有文件写入%TEMP%或其他文件,然后-在成功写入所有文件后,我将使用事务文件管理器(如上所述)将文件移动到所需位置

需要注意的是,我必须使用流

在你看来,这两个选项中哪一个更好?有什么更好的建议或想法吗?

感谢


编辑

我遇到的另一个选项是使用AlphaFS,就像下面的例子一样。对此有什么想法吗?

C#中多个FileStreams的事务性写入

我最终使用了AlphaFS。就像在这个例子中一样使用它。它工作得很好,完全符合我的需要。

谢谢大家的评论。