Forum: Win32/Win64 API (native code)
Delphi
by shmia,
14. Apr 2010
Lass doch den Cache seine Arbeit machen.
Wenn die Datei geschrieben wurde, dann kann man ja FlushFileBuffers aufrufen:
stream := TFileStream.Create(....
try
// hier 100MB schreiben
FlushFileBuffers(stream.Handle);
// jetzt ist die Datei sicher auf dem Datenträger
finally
stream.Free;
Forum: Win32/Win64 API (native code)
Delphi
by shmia,
14. Nov 2007
Das wäre extrem aufwändig, da du so das Dateisystem (FAT16, FAT32, NTFS) selbst unterstützen müsstest.
Lösung: einen Stream verwenden.
Man kann aber nicht direkt einen TFileStream verwenden, sondern muss auf THandleStream ausweichen.
Nur so kann man FILE_FLAG_WRITE_THROUGH angeben.
function CreateUnbuffedFilestream(const filename:string):TStream;
var
fhandle : THandle;
begin
fhandle...