Hya,
ich schreibe derzeit ein Programm das automatisch beim Start bestimmte dateien sucht.
dabei wird höchster warscheinlcihkeit immer die gesamte partition und mehrere partitionen
hintereinander nach dateinen einer bestimmten maske gesucht wie '*.mpg' oder '*.txt'.
So der such algorithmus ist fertig mit find first/next und callback.
Jedoch möchte ich dazu natürlich auch einen progress.
Weiß jemand was man als ProgressBarMaxValue nehmen könnte in dieser situation?
Meine Idee ist alle verzeichnisse der suchpartition durch zählen und als max zu nehmen
und wenn er rekursiv sucht könnte man immer wen er in ein verzeichnis geht sozusagen
den progress um 1nes erhöhen. jedoch läuft meine FolderCount routine mit
findfirst recht langsam für einmal C:\ ordner zählen ca 1ne Min. und nur um die
progressbar zu initialisieren pro partition ist ne minute zu lang.
jemand vorschläge wie man sonst den progress hinbekommt?
amsonsten vieleicht jemand einen vorschlag wie mein countfolders schneller geht?
Delphi-Quellcode:
function CountFolders(AFolder : string) : integer;
var
ASearchRec : TSearchRec;
begin
Result := 0;
if (AFolder = '') then
Exit;
if FindFirst(BuildFileName(AFolder, '*.*'), faDirectory, ASearchRec) = 0 then
begin
try
repeat
if ((ASearchRec.Attr and faDirectory) = faDirectory) and
(ASearchRec.Name <> '..') and
(ASearchRec.Name <> '.') then
begin
inc(result);
result := result + CountFolders(BuildFileName(AFolder, ASearchRec.Name));
end;
until FindNext(ASearchRec) <> 0;
finally
SysUtils.FindClose(ASearchRec);
end;
end;
end;
Wenn das Meer unruhig ist und der Wind die Wellen treibt, erfreut es, vom Strand aus die Mühen eines Anderen zu beobachten.