FindAllFiles/pl
English · Español · Français · Polski · Suomi · Русский
Aby włączyć FileUtil w swoim projekcie, dodaj LazUtils do wymaganych pakietów. Wykonaj następujące kroki:
- Przejdź do Menu Lazarus IDE > Projekt > Inspektor projektu
- W oknie dialogowym Inspektor projektu kliknij Dodaj > Nowy wymóg
- W oknie dialogowym Nowy wymóg znajdź pakiet LazUtils, a następnie kliknij OK.
Zobacz także:
- http://lazarus-ccr.sourceforge.net/docs/lcl/fileutil/findallfiles.html
- http://lazarus-ccr.sourceforge.net/docs/lcl/fileutil/tfilesearcher.html
procedure FindAllFiles(AList: TStrings; const SearchPath: String;
SearchMask: String = ''; SearchSubDirs: Boolean = True; DirAttr: Word = faDirectory);
function FindAllFiles(const SearchPath: String; SearchMask: String = '';
SearchSubDirs: Boolean = True): TStringList;FindAllFiles szuka plików pasujących do SearchMask (maski wyszukiwania) w katalogu SearchPath i w jego podkatalogach jeśli SearchSubDirs ma wartość True, a następnie wypełnia stringlist wynikowymi nazwami plików.
Maska może być pojedynczą maską, tak jak w przypadku funkcji FindFirst/FindNext, lub może składać się z listy masek oddzielonych średnikiem (;). Spacje w masce są traktowane jako literały.
Parametr DirAttr jest atrybutem pliku typu Integer (dokładniej typu Word): jeśli element systemu plików ma ten atrybut, wówczas jest traktowany jako katalog. Może to być faDirectory, faSymLink, (faDirectory+faSymLink) a także inne wartości bitów.
Istnieją dwie przeciążone wersje tej procedury. Pierwsza z nich to procedura i zakłada, że zwrotna lista łańcuchów (AList: TStrings) została już utworzona. Druga to funkcja, która wewnętrznie tworzy listę łańcuchów i zwraca ją jako wynik funkcji. W obu przypadkach lista łańcuchów musi zostać zniszczona przez procedurę wywołującą.
Przykład
uses
..., FileUtil, ...
var
PascalFiles: TStringList;
begin
PascalFiles := TStringList.Create;
try
FindAllFiles(PascalFiles, LazarusDirectory, '*.pas;*.pp;*.p;*.inc', true); //znajdź np. wszystkie pliki źródłowe pascala
ShowMessage(Format('Znaleziono %d plików źródłowych Pascala', [PascalFiles.Count]));
finally
PascalFiles.Free;
end;
// lub
begin
//Nie ma potrzeby tworzenia listy ciągów; funkcja robi to za Ciebie
PascalFiles := FindAllFiles(LazarusDirectory, '*.pas;*.pp;*.p;*.inc', true); //znajdź np. wszystkie pliki źródłowe pascala
try
ShowMessage(Format('Znaleziono %d plików źródłowych Pascala', [PascalFiles.Count]));
finally
PascalFiles.Free;
end;Warning: WAŻNA UWAGA: Funkcja „FindAllFiles” tworzy wewnętrznie listę ciągów. Na pierwszy rzut oka może się to wydawać bardzo wygodne, ale bardzo łatwo jest tworzyć wycieki pamięci w ten sposób:
// NIGDY TEGO NIE RÓB !!!! - W tym kodzie nie ma sposobu, aby zniszczyć listę ciągów utworzoną przez FindAllFiles. Listbox1.Items.Assign(FindAllFiles(LazarusDirectory, '*.pas;*.pp;*.p;*.inc', true);
Note: Jeśli chcesz używać tej funkcji w programach wiersza poleceń, dodaj wymagany moduł LCLBase, który nie będzie pobierać całego LCL
From the Free Pascal wiki, page "FindAllFiles/pl", as it stood on 2022-02-08 after a change by Slawek, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
