Thema: Delphi Dateien überschreiben

Einzelnen Beitrag anzeigen

orion3000

Registriert seit: 28. Aug 2003
Ort: Betzdorf
63 Beiträge
 
Delphi 4 Standard
 
#1

Dateien überschreiben

  Alt 29. Aug 2003, 08:22
Hallo,

kann mir irgendjemand sagen was hier falsch ist ....

Ich habe eine Procedure geschrieben diese soll eine Datei durch überschreiben löschen, dies Funktioniert auch ganz gut aber das Problem hier ist das die Funktion nicht bis zu Ende sondern darüber hinaus geht.
Das heißt wenn ich die Procedure starte dann wird zwar die Datei überschrieben aber wenn die Datei 1MB groß ist wird daraus eine Dateigröße die den gesammten freien Speicher der Festplatte belegt.

Die Procedure Stoppt einfach nicht wenn das Ende der Datei erreicht ist.

Delphi-Quellcode:
procedure WipeFile(FileName:string;Delfile:boolean);
var
  buffer: array [0..4095] of Byte;
  max, n: LongInt;
  i: Integer;
  fs: TFileStream;

  procedure RandomizeBuffer;
  var
    i: Integer;
  begin
    for i := Low(buffer) to High(buffer) do
      buffer[i] := Random(256);
  end;
begin
  fs := TFilestream.Create(FileName, fmOpenReadWrite or fmShareExclusive);
  try
    for i := 1 to 3 do
    begin
      RandomizeBuffer;
      max := fs.Size;
      fs.Position := 0;
      while max <> 0 do
      begin
        if max <> SizeOf(buffer) then
          n := SizeOf(buffer)
        else
          n := max;
        fs.Write(Buffer, n);
        max := max - n;
      end;
      FlushFileBuffers(fs.Handle);


    end;
  finally
    fs.Free;
  end;


  if Delfile then
  Deletefile(pchar(FileName));
end;
Danke für Eure Hilfe
Orion3000
  Mit Zitat antworten Zitat