Режимы сбоя WriteFile - PullRequest
       28

Режимы сбоя WriteFile

0 голосов
/ 17 августа 2011

Что может случиться с файлом, который записывается в общий сетевой ресурс, когда сетевое соединение "не удается"?Я предполагаю, что может случиться несколько вещей.

Причина, по которой я спрашиваю, заключается в том, что написанная мной программа повредила файл так, как я никогда раньше не видела.На самом деле, я никогда не получал сообщения о том, что моя программа создала поврежденный файл, и я уверен, что если он испортит файл, я услышу об этом.Код, который на самом деле сгенерировал поврежденный файл, на самом деле является кодом Microsoft.Файл создается при вызове функции save в интерфейсе IXMLDOMDocument2 из COM-компонента MSXML4.0.Функция создала недопустимый документ XML.Последние 5452 байта файла из 33789 байтов были заполнены значениями NULL (0x00).Я пытаюсь понять, что случилось.

1 Ответ

2 голосов
/ 17 августа 2011

Краткий ответ: файл может быть поврежден (как вы уже нашли).

Отсюда почти единственный интересный вопрос - как вы предотвратите это снова? Типичный способ - записать данные во временный файл, а после записи переименовать его в правильное имя. Если сетевое соединение прекратит работу, у вас не будет правильного имени файла. Для восстановления вы удалите все временные файлы и перезапустите операцию с самого начала.

...