Einzelnen Beitrag anzeigen

DelphiUser123

Registriert seit: 23. Feb 2013
39 Beiträge
 
#1

Daten Shredder Sourcecode

  Alt 29. Jan 2017, 16:03
Hallo liebe Delphi Community, ich komme mal wieder hobbymäßig zum Programmieren...
Folgenden Sourcecode habe ich gefunden auf delphitricks.com:

Category: Files
Title: Shred and Delete files without any trace
Date added: 15.03.2006
Hits: 12211

Delphi-Quellcode:
procedure ShredderFile(FileName: string);
const
  Buffer = 1024;
  Counttowrite = 34;
  FillBuffer: array[0..5] of Integer = ($00, $FF, $00, $F0, $0F, $00);
var
  arr: array[1..Buffer] of Byte;
  f: file;
  i, j, n: Integer;
begin
  AssignFile(f, FileName);
  Reset(f, 1);
  n := FileSize(f);
  for j := 0 to Counttowrite do
  begin
    for i := 1 to n div Buffer do
    begin
      BlockWrite(f, FillBuffer[j], Buffer);
    end;
  end;
  CloseFile(f);
  RenameFile(FileName, ExtractFilepath(FileName) + '$000000.tmp');
  DeleteFile(ExtractFilepath(FileName) + '$temp.tmp');
end;

procedure ShredderAndDeleteFile(const FileName: string);
var
  newname: string;
begin
  newname := ExtractFilepath(FileName) + '$temp.tmp';
  if not RenameFile(FileName, newname) then
    raise
    Exception.CreateFmt('Can''t rename %s', [FileName]);
  ShredderFile(newname);
  DeleteFile(newname);
end;

Beim nachvollziehen fiel mir auf: die Variable arr wird definiert aber nicht benutzt. Also lasse ich diese weg!?
CounttoWrite ist bei 34, FillBuffer[j] hat aber nur 6 Elemente zum Ansteuern... Was passiert also in 29 Schleifendurchgängen- nichts?

Bei DeleteFile im ersten Block soll eine sog. $temp.tmp Datei gelöscht werden. Gibt es die überhaupt?

Ist es normal dass in veröffentlichtem Code so viele eigenartige Fehler stecken? Oder sehe ich etwas falsch?

Vielen Dank für Antworten.
  Mit Zitat antworten Zitat