Danke für Eure Antworten!
Ach ja, NTFS schafft noch ein paar TB.
Ich hatte keine Lust mehr und daher bei 100 GB aufgehört.
Das mit den Attributen ist schon klar. Komisch ist dann bloß, dass es
Delphi-Quellcode:
Unit Windows;
FILE_ATTRIBUTE_COMPRESSED = $00000800;
gibt. Damit lässt sich auch ohne den Umweg über
DeviceIoControl()
ermitteln, ob die Datei komprimiert ist oder eben nicht. Das wiederum brachte mich dann auf die Idee, dass ich es über die Attribute machen könnte.
[EDIT]
Ohne Umweg meint über die Abfrage des Attributes aus dem Record, welches man sich z.B. mit
FindFirstFile()
liefern lässt.
[/EDIT]
Ich habe es jetzt so gelöst:
Delphi-Quellcode:
lHandle:=CreateFile(PChar(lFileName),GENERIC_READ or GENERIC_WRITE,
0, nil, CREATE_ALWAYS,
FILE_FLAG_WRITE_THROUGH Or
FILE_FLAG_NO_BUFFERING Or
FILE_FLAG_DELETE_ON_CLOSE Or
FILE_ATTRIBUTE_NORMAL Or // -> kann ich mir dann sparen !
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED, // müsste ich mir auch sparen können, oder?
0);
FWritten:=0; FillChar(FBuffer, BufferSize, 0);
If (lHandle <> INVALID_HANDLE_VALUE) Then
Try
lComp:=0; // Kompression ausschalten
DeviceIoControl(lHandle, FSCTL_SET_COMPRESSION, @lComp, SizeOf(Short), nil, 0, lRes, nil);
...
Nochmals Dank für Eure Hilfe, Alex