Pri traženju datoteka često je korisno i potrebno pretraživati podmape. Evo, pogledajte kako koristiti Delphisnage za stvaranje jednostavnog, ali snažnog projekta pronalaženja svih datoteka.
Projekt pretraživanja datoteka / mapa
Sljedeći projekt ne samo da vam omogućuje pretraživanje datoteka putem podmapa, već omogućuje i lako određivanje atributa datoteka, poput imena, veličine, datuma izmjene itd. tako da možete vidjeti kada trebate pozvati dijaloški okvir Svojstva datoteke iz Windows Explorer. Konkretno, pokazuje kako rekurzivno pretraživati podmape i sastaviti popis datoteka koje odgovaraju određenoj maski datoteka. Tehnika rekurzije definirana je kao rutina koja sebe poziva usred svog koda.
Da bismo razumjeli kôd u projektu, moramo se upoznati sa sljedeće tri metode definirane u jedinici SysUtils: FindFirst, FindNext i FindClose.
FindFirst
FindFirst je poziv za inicijalizaciju za pokretanje detaljnog postupka pretraživanja datoteka pomoću Windows API pozivi. Pretraživanje traži datoteke koje odgovaraju specifikaciji Path. Put obično uključuje zamjenske znakove (* i?). Parametar Attr sadrži kombinacije atributa datoteka za kontrolu pretraživanja. Konstante atributa datoteke prepoznate u Attr su:
faAnyFile (bilo koju datoteku), faDirectory (direktorije), faReadOnly (čitaj samo datoteke), faHidden (skrivene datoteke), faArhiva (arhivske datoteke), faSysFile (sistemske datoteke) i faVolumeID (datoteke ID-a volumena).Ako FindFirst pronađe jednu ili više odgovarajućih datoteka, vraća 0 (ili kod pogreške za neuspjeh, obično 18) i ispunjava Rec s podacima o prvoj datoj datoteci. Za nastavak pretraživanja moramo koristiti isti zapis TSearcRec i proslijediti ga na funkciju FindNext. Kad se pretraživanje završi, postupak poziva FindClose mora biti pozvan da se oslobodi unutarnjih resursa sustava Windows. TSearchRec je zapis definiran kao:
Kad se prva datoteka nađe, parametar Rec se ispunjava i sljedeći polja (vrijednosti) mogu se koristiti u projektu.
. attr, atribute datoteke kao što je opisano gore.
. Ime sadrži niz koji predstavlja naziv datoteke, bez podataka o stazi
. Veličina u bajtovima pronađene datoteke.
. Vrijeme pohranjuje datum i vrijeme promjene datoteke kao datum datoteke.
. FindData sadrži dodatne informacije kao što su vrijeme stvaranja datoteke, posljednje vrijeme pristupa te oba duga i kratka imena datoteka.
FindNext
Funkcija FindNext drugi je korak u detaljnom postupku pretraživanja datoteka. Morate proći isti zapis pretraživanja (Rec) koji je kreiran pozivom na FindFirst. Povratna vrijednost s FindNext-a je nula za uspjeh ili kôd pogreške za bilo koju pogrešku.
FindClose
Ovaj postupak je potreban raskidni poziv za FindFirst / FindNext.
Rekurzivna maska datoteka koja odgovara pretraživanju u Delfima
Ovo je projekt "Pretraživanje datoteka" kako se pojavljuje u vrijeme izvođenja. Najvažnije komponente na obrascu su dva okvira za uređivanje, jedan okvir s popisom, potvrdni okvir i gumb. Okviri za uređivanje koriste se za određivanje putanje u kojoj želite pretraživati i masku datoteke. Pronađene datoteke prikazuju se u okviru Popis i ako je potvrdni okvir, tada se sve podmape skeniraju kako bi pronašle odgovarajuće datoteke.
Ispod je mali isječak koda iz projekta, samo kako bi se pokazalo da je pretraživanje datoteka s Delphijem najjednostavnije koliko može biti: