Я попробовал, Определяют количество AQTime и Определяют количество выигранный из-за его неоценимого 'внимания на sub дерево', и 'удаляют sub древовидные' функции.
Вы можете сделать копию из старого файла перед его заменой, а затем, если произошло исключение, восстановить из этой копии.
Если возможно, вы можете воспользоваться транзакционной NTFS . Если нет, то вы можете сохранить список выполненных вами операций и выполнить его в обратном порядке, когда потребуется откат.
Или вы можете развиваться как разработчик программного обеспечения и использовать шаблон команд и реализовать BatchCommand. Команды упрощают добавление функций отмены и интеллектуальную инкапсуляцию. Затем BatchCommand может вызывать undo () для каждой команды в своем списке.
Хороший учебник по шаблонам можно найти в Head First Design Patterns
Я бы скопировал новые файлы, добавив суффикс и случайный номер, чтобы избежать конфликтов с уже существующими именами файлов.
Пример ... Old file = "myfile.txt", New file = "myfile.txt.new.285387".
Затем, когда процесс копирования завершится нормально, я бы ... -Переименуйте старый файл как «myfile.txt.old.3464353». -Переименуйте новый файл как "myfile.txt" -Наконец старое будет стерто.
Подходит ли вашему варианту использования копирование файлов во временный каталог и затем переместить весь каталог на место? В таком случае для отката достаточно просто удалить временный каталог.