Здравствуйте, #John, Вы писали:
J>надо добавить информацию сначала в один файл, потом во второй, J>если процесс оборвался перед записью во второй файл, J>то изменения в первом файле должны откатиться, как такое можно реализовать?
Вам правильно порекомендовали выше заюзать ntfs-transaction или готовую СУБД вместо работы с файлами, где механизм транзакций поддерживается из коробки.
Но! В качестве разминки попробую предложить альтернативу. Итак:
1. К каждой записи добавляете проверку целостности (хеш). Т.е. считываете строку и можете проверить не оборвалась ли она на середине.
2. При запуске вашей проги проверяете конец файлов — корректные ли там данные (т.е. целостность). Если оборвалось — то урезает (Seek) до предыдущей записи. Проверять нужно и первый и второй файл.
3. Если сбой произошел штатно, т.е. завершение процесса не произошло (а, к примеру, файл был заблокирован другим процессом) — то это отлавливается исключениями.
Пока не вижу подводных камней, но к критике готов.