Jak wyszukiwać pliki i foldery za pomocą Delphi

Podczas wyszukiwania plików często przydatne i konieczne jest przeszukiwanie podfolderów. Tutaj zobacz, jak korzystać Delfysiła, by stworzyć prosty, ale potężny projekt „znajdź wszystko, co pasuje”.

Projekt wyszukiwania maski pliku / folderu

Poniższy projekt pozwala nie tylko wyszukiwać pliki w podfolderach, ale także pozwala łatwo określić atrybuty plików, takie jak nazwa, rozmiar, data modyfikacji itp. dzięki czemu można zobaczyć, kiedy należy wywołać okno dialogowe Właściwości pliku z poziomu Eksplorator Windows. W szczególności pokazuje, jak rekurencyjnie przeszukiwać podfoldery i składać listę plików pasujących do określonej maski plików. Technikę rekurencji definiuje się jako procedurę, która wywołuje się w środku kodu.

Aby zrozumieć kod w projekcie, musimy zapoznać się z następnymi trzema metodami zdefiniowanymi w jednostce SysUtils: FindFirst, FindNext i FindClose.

FindFirst

FindFirst to wywołanie inicjujące w celu rozpoczęcia szczegółowej procedury wyszukiwania plików Wywołania interfejsu API systemu Windows

instagram viewer
. Wyszukiwanie szuka plików pasujących do specyfikatora ścieżki. Ścieżka zwykle zawiera znaki wieloznaczne (* i?). Parametr Attr zawiera kombinacje atrybutów pliku do sterowania wyszukiwaniem. Stałe atrybutów pliku rozpoznawane w Attr to: faAnyFile (dowolny plik), faDirectory (katalogi), FaReadOnly (pliki tylko do odczytu), FAHidden (ukryte pliki), faArchive (pliki archiwalne), faSysFile (pliki systemowe) i faVolumeID (pliki identyfikatora woluminu).

Jeśli FindFirst znajdzie jeden lub więcej pasujących plików, zwraca 0 (lub kod błędu w przypadku niepowodzenia, zwykle 18) i wypełnia Rec informacje o pierwszym pasującym pliku. Aby kontynuować wyszukiwanie, musimy użyć tego samego rekordu TSearcRec i przekazać go do funkcji FindNext. Po zakończeniu wyszukiwania należy wywołać procedurę FindClose, aby zwolnić wewnętrzne zasoby systemu Windows. TSearchRec to rekord zdefiniowany jako:

Po znalezieniu pierwszego pliku parametr Rec zostaje wypełniony, a Twój projekt może wykorzystać następujące pola (wartości).
. Attr, atrybuty pliku jak opisano powyżej.
. Nazwa zawiera ciąg reprezentujący nazwę pliku, bez informacji o ścieżce
. Rozmiar w bajtach znalezionego pliku.
. Czas przechowuje datę i godzinę modyfikacji pliku jako datę pliku.
. FindData zawiera dodatkowe informacje, takie jak czas utworzenia pliku, czas ostatniego dostępu oraz długie i krótkie nazwy plików.

Znajdź następny

Funkcja FindNext jest drugim krokiem w szczegółowej procedurze wyszukiwania plików. Musisz przekazać ten sam rekord wyszukiwania (Rec), który został utworzony przez połączenie z FindFirst. Zwracana wartość z FindNext wynosi zero dla sukcesu lub kod błędu dla dowolnego błędu.

FindClose

Ta procedura jest wymaganym wywołaniem zakończenia dla FindFirst / FindNext.

Wyszukiwanie w rekursywnych maskach plików w Delphi

Jest to projekt „Wyszukiwanie plików”, który pojawia się w czasie wykonywania. Najważniejsze elementy formularza to dwa pola edycji, jedno pole listy, pole wyboru i przycisk. Pola edycji służą do określenia ścieżki, w której chcesz wyszukiwać, oraz maski pliku. Znalezione pliki są wyświetlane w polu Lista, a jeśli pole wyboru jest zaznaczone, wszystkie podfoldery są skanowane w poszukiwaniu pasujących plików.

Poniżej znajduje się mały fragment kodu z projektu, aby pokazać, że wyszukiwanie plików za pomocą Delphi jest tak proste, jak to tylko możliwe:

instagram story viewer