also wenn du dein progamm noch beschleunigen willst, dann würde ich deine
GetFilesInDirectory so abändern, dass sie nur 1x aufgerufen wird.
die gültigen dateiendungen kann man z.B. in ner hash-table speichern und
dann die dateiendung der aktuellen datei in der hash-table suchen.
so z.B.:
Delphi-Quellcode:
//brauchste nur 1x machen z.B. beim erstellen des forms
FDictImageExt := TStringDictionary.Create;
FDictImageExt.CaseSensitive := true;
FDictImageExt.Add('.jpg');
FDictImageExt.Add('.jpeg');
FDictImageExt.Add('.gif');
FDictImageExt.Add('.png');
FDictImageExt.Add('.bmp');
FDictImageExt.Add('.pdf');
und dann änderst du deine Routine so ab
Delphi-Quellcode:
procedure TForm1.GetFilesInDirectory(const Directory: String);
var
SR: TSearchRec;
Filename, Key: String;
begin
if FindFirst(Directory + '*.*', faAnyFile, SR) = 0 then
repeat
if (SR.Name = '.') or (SR.Name = '..') then
Continue;
Filename := Directory + SR.Name;
if (SR.Attr and faDirectory) = faDirectory then
GetFilesInDirectory(Filename + '\')
else
if FDictImageExt.Contains(ExtractFileExt(Filename)) then
begin
//Filename ist ein Bild, mache etwas damit
end;
until FindNext(SR) <> 0;
end;
//aufruf
GetFilesInDirectory(IncludeTrailingPathDelimiter(direct));
du könntest dann noch als parameter eine liste übergeben
und dadrin die gefundenen bilder speichern oder in
einem feld deiner klasse speichern oder sonst wo
der vorteil ist, du gehst die dateien wirklich nur 1x durch.
bei deiner methode gehst du pro dateiendung 1x durch die dateien
durch. also in deinem fall 5x.
das gleiche gilt i.ü. für deine
html-files... wo du nach 3 endungen
suchst, also auch 3x alle dateien durchgehst. das könnte man genau
so in in einem rutsch erledigen!