Registriert seit: 1. Jul 2003
347 Beiträge
Delphi 2007 Professional
|
Re: frage zu tip datei löschen und..
3. Dez 2003, 20: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;
|
|
Zitat
|