Einzelnen Beitrag anzeigen

horst

Registriert seit: 1. Jul 2003
347 Beiträge
 
Delphi 2007 Professional
 
#12

Re: frage zu tip datei löschen und..

  Alt 3. Dez 2003, 19:07
hallo...gerne.

Delphi-Quellcode:
procedure SafeDeleteFile(Filename : String);
const Buffer = 1024;
var
  arr: array [1..Buffer] of byte;
  fi: file;
  i, n: integer;
begin
  if FileExists(FileName) then
  begin
    AssignFile(fi, FileName);
    Reset(fi, 1);
    n := FileSize(fi);
    FillChar(arr, SizeOf(arr), #0);
    for i := 1 to n div Buffer do
    begin
      BlockWrite(fi, arr, n mod Buffer);
    end;
    CloseFile(fi);
    Erase(fi);
  end;
end;


// Deklaration ab Delphi 5
procedure FindAllFiles(RootFolder: string; Mask: string = '*.*'; Recurse: Boolean = True);

var
  SR: TSearchRec;
begin
  if AnsiLastChar(RootFolder)^ <> '\then
    RootFolder := RootFolder + '\';

  // * * * * *
  // nur bis einschließlich Delphi 4 benötigt
  if Mask = 'then
    Mask := '*.*';
  // * * * * *

  if Recurse then
    if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then
      try
        repeat
          if SR.Attr and faDirectory = faDirectory then
            // --> ein Verzeichnis wurde gefunden
            // der Verzeichnisname steht in SR.Name
            // der vollständige Verzeichnisname (inkl. darüberliegender Pfade) ist
            // RootFolder + SR.Name
            if (SR.Name <> '.') and (SR.Name <> '..') then
              FindAllFiles(RootFolder + SR.Name, Mask, Recurse);
        until FindNext(SR) <> 0;
      finally
        FindClose(SR);
      end;
  if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then
    try
      repeat
        if SR.Attr and faDirectory <> faDirectory then
        begin
          // --> eine Datei wurde gefunden
          // der Dateiname steht in SR.Name
          // der vollständige Dateiname (inkl. Pfadangabe) ist
          // RootFolder + SR.Name
           // löschen/überschreiben
          SafeDeleteFile(RootFolder + SR.Name);
        end;
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
FindAllFiles('C:\test\','*.*');
end;
  Mit Zitat antworten Zitat