Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#31

AW: File Eraser programmieren

  Alt 3. Jan 2011, 21:07
Jupp, dahinter stecken teilweise einige eigene Definitionen/API-Implementationen.

Delphi-Quellcode:
PLongWordArray = ^TLongWordArray;
TLongWordArray = Array[0..0] of LongWord;
TLargeIntRec = Delphi-Referenz durchsuchenInt64Rec

Memory.Fill1 = Delphi-Referenz durchsuchenFillMemory usw.


Aber Aufgrund der aktuellen Datendichte und wegen dem exzessiven Logging von NTFS, reicht ein einfaches überschreiben.

Delphi-Quellcode:
var
  s: TFileStream;
  a: array[0..$FFFF] of Byte;
  i: Int64;
begin
  FillChar(a, SizeOf(a), 0);
  s := TFileStream.Create(TheFileName, fmOpenReadWrite);
  try
    i := (s.Size + $FFFF) and not Int64($FFFF);
    while i > 0 do begin
      s.Write(a, SizeOf(a));
      if i mod $03FFFFFF = 0 then
        FlushFileBuffers(s.Handle);
      Dec(i, SizeOf(a));
    end;
    FlushFileBuffers(s.Handle);
  finally
    s.Free;
  end;
PS: Wirklich sicher löschen geht aber nicht.
OK, die Daten in dieser Datei mögen weg sein, aber es können noch Kopien der Dateidaten vorhanden sein.
(Fragmentierung, Pagefile usw.)

Aber den Grund dafür hatte ich in irgendeinem dieser Sicher-Löschen-Threads schonmal ausführlich benannt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat