Windows - WriteFile-fejlfunktioner

Indlæg af Hanne Mølgaard Plasc

Problem



Hvad kan der ske med en fil, der skrives til over et netværk, når netværksforbindelsen 'fejler?' Jeg forestiller mig, at flere ting kan ske.


Grunden til, jeg spørger, er fordi et program, som jeg skrev, syntes at ødelægge en fil på en måde, som jeg aldrig har set før. Faktisk har jeg aldrig modtaget en rapport fra mit program, der skaber en korrupt fil før, og jeg føler mig overbevist om det ødelagte en fil, jeg ville høre om det. Koden, der faktisk genererede den korrupte fil, er faktisk Microsoft-kode. Filen oprettes, når funktionen save kaldes på IXMLDOMDocument2-grænsefladen fra MSXML4.0 COM-komponenten. Funktionen oprettet et ugyldigt XML-dokument. De sidste 5452 bytes af en 33789 byte fil blev fyldt med NULLs (0x00). Jeg forsøger at forstå, hvad der skete.

Bedste reference


Det korte svar er, at filen kan blive ødelagt (som du allerede har fundet).


Derfra er næsten det eneste interessante spørgsmål, hvordan du forhindrer det i at ske igen. Den typiske måde er at skrive dataene til en midlertidig fil, og derefter efter at den er skrevet, omdøb den til det korrekte navn. Hvis netværksforbindelsen dør i midten af ​​dette, vil du ikke have det rigtige filnavn. For at gendanne, sletter du midlertidige filer, og genstarter operationen fra begyndelsen.