Wenn du die Datei erstellst und via SetEndOfFile vergrößerst, dann wird sie erstmal mit 0 gefüllt.
Es kommt also in diesem Fall eigentlich besser du füllst die Datei direkt und weist ihr nicht vorher die Größe zu.
Du könntest jetzt, wenn die Datei garantiert nicht komprimiert wird (dieses legt ja Windows anhand des Ordners fest ... ist dieser komprimiert, dann wird die Datei auch),
dann könntest du die physische Größe der Datei festlegen, dann wird sie nicht mit 0 gefüllt und es geht ratsfatz (mehr siehe
msdn, denn da muß man Einiges beachten).
Ansonsten würde ich die eine Sparsefile emfpehlen, da werden dann die Sparcebereiche nicht physisch auf dem Datenträger erstellt, aber sie hat virtuell dennoch die gewünschte Größe.
Die Sparcebereiche werden dann erst beim Speichern angelegt.
(gilt aber nur für NTFS)
Wäre jetzt nur die Frage, warum willst du unbedingt die Größe vorher festlegen?
Also bevor da überhaupt Daten drinnen sind.
NTFS hat 'ne andere Cache-/Speicherverwaltung, so aß es dort oftmals so aussieht, als wäre dieses schneller, aber im Endefekt ist es zu großen Teilen langsamer, als FAT.
Also bis wirklich alle Daten gespeichert/geändert sind.