![]() |
Verzeichnis durchsuchen, und anzeigen wenn fertig
Hallo,
ich verwenden folgende Routine um Verzeichnisse zu druchsuchen:
Delphi-Quellcode:
Hab ich
procedure THDDSearchingForm.FindAllFiles(RootFolder: string; Mask: string = '*.*'; Recurse: Boolean = True);
var SR: TSearchRec; begin Application.ProcessMessages; RootFolder := IncludeTrailingPathDelimiter(RootFolder); if Recurse then if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then try repeat Application.ProcessMessages; 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 AktFolder := StringReplace(RootFolder,'\.','',[rfReplaceAll]) + 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 Application.ProcessMessages; 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 // folgende Zeile schreibt den vollständigen Namen in eine Memo Feld des // Formulars Form1 If (GetSize(RootFolder + SR.Name) >0) and (GetSize(RootFolder + SR.Name) < 10240) then begin If ReadGroup(RootFolder + Sr.Name) = 'error' then else begin AdressesBox.Items.Add(Copy(SR.Name,0,Length(SR.Name)-4)); end; Application.ProcessMessages; end; end; until FindNext(SR) <> 0; finally FindClose(SR); end; ![]() Naja jedenfalls möchte ich jetzt eine kleine Anzeige machen. Und zwar eine, die anzeigen soll, ob aktuell gesucht wird, oder ob die Suche beendet ist. Ich hatte es erst mit einer Variable probiert, diese am Anfang auf true und am Ende der Routine auf false gesetzt. Hat aber nicht funktioniert. Kann mir vielleicht jemand helfen? MfG Daniel L. |
Re: Verzeichnis durchsuchen, und anzeigen wenn fertig
Hallo,
mach doch ein CallBack-event, welches immer in den schleifen aufgerufen wird. So könntest du auch zwischendrinn den dateinamen und anders anzeigen. //Edit: PS so hab ich es damals im alten Delphi-forum gemacht -> ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 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 by Thomas Breitkreuz