Zitat von
shmia:
Delphi-Quellcode:
const
Fillchars: array[0..5] of char = (Char($00), Char($FF), Char($00), Char($F0), Char($0F), Char($00));
BLOCK_SIZE = 8096;
var
fs : TStream;
buffer : String;
i, j : Integer;
begin
fs := TFileStream.Create(filename, fmOpenReadWrite or fmShareExclusive);
try
// Datei auf nächste Blockgrösse verlängern, damit der "Slack" überschrieben
// wird
fs.Size := ((fs.Size div BLOCK_SIZE) +2) * BLOCK_SIZE;
Sehr unschöne Lösung, vorallem weil Cluster durchaus größer als 8 KB sein können. Es wäre besser zur Laufzeit die Cluster Größe auf dem Laufwerk zu ermitteln, auf dem geschrieben werden soll:
GetDiskFreeSpace