Ответ 1
Вы ищете Transactional NTFS, представленный Windows Vista.
Я использую TransactionScope для работы с базой данных, и мне приятно. Я ищу следующее:
using(var scope=new TransactionScope())
{
// Do something with a few files...
scope.Complete();
}
но очевидно, что это не сработает - если есть 20 файлов, а исключение возникает в 9-м файле, все предыдущие 8 остаются измененными, а остальные неизменными - откат не выполняется. Итак, что было бы лучшим способом реализовать поведение, подобное видимости для файлов?
Я надеюсь, что есть простой ответ, но если нет, можете ли вы просто дать мне несколько указателей или указать мне на соответствующую статью?
Вы ищете Transactional NTFS, представленный Windows Vista.
Вы можете попробовать библиотеку .NET Transactional File Manager на Codeplex и NuGet. Он поддерживает любую файловую систему и не является оболочкой для Transactional NTFS.
Из описания проекта:
Transactional File Manager - это .NET API, поддерживающий в том числе файл системные операции, такие как копирование, перемещение, удаление, добавление и т.д. в сделка. Это реализация System.Transaction.IEnlistmentNotification(работает с System.Transactions.TransactionScope).