![]() |
frage zu tip datei löschen und..
wie kann ich diesen tip nicht nur auf eine datei, sondern auf einen ganzen ordner anwenden?
wenn möglich auch ohne opendialog mit z.b. mit absoluter pfadangabe. ![]() grüße ;) |
Re: frage zu tip datei löschen und..
Such nmal in der Code-Lib nach
![]() |
Re: frage zu tip datei löschen und..
Hai horst,
dafür wirst Du mit FindFist - FindNext den Ordner durchsuchen müssen und dann die Dateien einzeln überschreiben und anschließend löschen müssen. [Edit]Ich bin heute echt zu langsam. Immer ist das Luckie schneller[/Edit] |
Re: frage zu tip datei löschen und..
hallo und danke für euren schnellen antworten.
habe mir den tip ![]() angeschaut, ganz schön komplex. mag mir jemand dabei helfen? |
Re: frage zu tip datei löschen und..
Zitat:
|
Re: frage zu tip datei löschen und..
ok...stimmt, ich meld mich dann wieder!
|
Re: frage zu tip datei löschen und..
ich komme nicht weiter damit, krieg das nicht zusammen, mag mir das jemand zeigen?
habe damit rumprobiert:
Delphi-Quellcode:
function TForm1.datei(sDrive: String): Boolean;
var SR: TSearchRec; begin Result := SysUtils.FindFirst(sDrive + '\*.*', faAnyFile, SR) = 0; SysUtils.FindClose(SR); end;
Delphi-Quellcode:
kriege aber result nicht hier rein
AssignFile(fi, '??'); |
Re: frage zu tip datei löschen und..
Zitat:
was hast Du denn schon? Zeig mal deinen Code. |
Re: frage zu tip datei löschen und..
Nimm doch das Beiapiel zum löschen der datei und mach ne Proc drauss:
Delphi-Quellcode:
Dann änderst du nur die Zeile im anderen Beispiel:
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;
Delphi-Quellcode:
in:
Form1.Memo1.Lines.Add(RootFolder + SR.Name);
Delphi-Quellcode:
SafeDeleteFile(RootFolder + SR.Name);
|
Re: frage zu tip datei löschen und..
@ Sharky ...das war alles :oops:
@ scp ... es funktioniert wunderbar und was das beste ist, ich habe es verstanden, danke :love: |
Re: frage zu tip datei löschen und..
Hai horst,
wie hast Du dein "Problem" denn gelöst? Wenn Du hier eine Antwort gibst haben alle die unsere Suchfunktion benutzen auch etwas davon. |
Re: frage zu tip datei löschen und..
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; |
Re: frage zu tip datei löschen und..
Newbiefrage: Wie kann man damit jetzt noch eine komplette Ordnerstruktur incl Inhalt löschen?
danke EL FYI: ....... procedure FindAllFiles(var FileList: TStrings; RootFolder: string; Mask: string = '*.*'; Recurse: Boolean = True); var SR: TSearchRec; begin IncludeTrailingPathDelimiter(RootFolder); 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(FileList, 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 FileList.Add(RootFolder + SR.Name); end; until FindNext(SR) <> 0; finally FindClose(SR); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz