Einzelnen Beitrag anzeigen

bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#1

schnellere Procedure gesucht

  Alt 19. Dez 2005, 17:53
Hallo, kennt einer eine schnellere und komfortablere Procedure zum Auslesen von Ordnerstrukturen ?

Diese hier geht 2x durch die gleichen Strukturen und kann auch nur eine DateiMask.

Delphi-Quellcode:
procedure Tmediaarchiv_frm.FindAllFiles(RootFolder: string; Mask: string = '*.*'; Recurse: Boolean = True);
var SR: TSearchRec;
 begin
   RootFolder := IncludeTrailingPathDelimiter(RootFolder);
    if Recurse then
    if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then
      try
        repeat
          if not Flag_File_search_stop then
          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);
              application.ProcessMessages;
              mediaplayer_frm.search_scroll_txt.Enabled := true; //Aktivierung
              mediaplayer_frm.search_scroll_txt.visible := true;
              mediaplayer_frm.stop_search_btn.Visible := true;
        until FindNext(SR) <> 0;
      finally
        FindClose(SR);
        mediaarchiv_frm.search_files_end_timer.Enabled := true;
        mediaarchiv_frm.search_files_end_timer.Interval := 1500;
      end;
    if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then
      try
        repeat
          if not Flag_File_search_stop then
          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 Listbox
           PlayList.Add(RootFolder + SR.Name);
           mediaplayer_frm.PlayList_ListBox.Items.add(SR.Name);
           mediaarchiv_frm.search_files_end_timer.Enabled:= false;//Verzögerung
           mediaplayer_frm.search_scroll_txt.Enabled := true; //Aktivierung
           mediaplayer_frm.search_scroll_txt.visible := true;
           mediaplayer_frm.stop_search_btn.Visible := true;
        end;
        until FindNext(SR) <> 0 ;
      finally
        FindClose(SR);
        mediaarchiv_frm.search_files_end_timer.Enabled := true;
        mediaarchiv_frm.search_files_end_timer.Interval := 1500;
      end;
 end;
  Mit Zitat antworten Zitat