Kuidas faile ja kaustu Delphiga otsida

Failide otsimisel on sageli kasulik ja vajalik otsida alamkaustadest. Siit saate teada, kuidas kasutada Delphitugevuseks lihtsa, kuid võimsa failide leidmiseks kõigi jaoks sobivate projektide loomiseks.

Failide / kaustade maskide otsinguprojekt

Järgmine projekt võimaldab mitte ainult otsida faile alamkaustade kaudu, vaid võimaldab teil hõlpsalt määrata ka failide atribuute, näiteks nimi, suurus, muutmiskuupäev jne. nii et näete, millal faili atribuutide dialoogi saab käivitada Windows Explorer. Eelkõige demonstreerib see, kuidas rekursiivselt otsida alamkaustadest ja koostada failide loend, mis vastavad kindlale failimaskile. Rekursiooni tehnikat määratletakse kui rutiini, mis kutsub end oma koodi keskele.

Projekti koodi mõistmiseks peame tutvuma kolme järgmise meetodiga, mis on määratletud üksuses SysUtils: FindFirst, FindNext ja FindClose.

FindFirst

FindFirst on initsialiseerimiskõne üksikasjaliku failiotsingu protseduuri alustamiseks, kasutades Windowsi API-kõned. Otsing otsib faile, mis vastavad tee täpsustajale. Tee sisaldab tavaliselt metamärke (* ja?). Parameeter Attr sisaldab otsingu juhtimiseks failiatribuutide kombinatsioone. Attr-is tuvastatud failiatribuudi konstandid on:

instagram viewer
faAnyFile (mis tahes fail), faDirectory (kataloogid), faReadOnly (ainult failid), faHidden (varjatud failid), faArchive (arhiivifailid), faSysFile (süsteemifailid) ja faVolumeID (mahu ID-failid).

Kui FindFirst leiab ühe või mitu sobivat faili, tagastab ta 0 (või tõrke veakoodi, tavaliselt 18) ja lisab Rec-le esimese sobitusfaili andmed. Otsingu jätkamiseks peame kasutama sama TSearcReci kirjet ja edastama selle funktsioonile FindNext. Kui otsing on lõpule viidud, tuleb Windowsi sisemiste ressursside vabastamiseks kutsuda üles protseduur FindClose. TSearchRec on kirje, mis on määratletud järgmiselt:

Kui esimene fail leitakse, on parameeter Rec täidetud ja järgmisi välju (väärtusi) saab teie projekt kasutada.
. Attr, faili atribuudid, nagu eespool kirjeldatud.
. Nimi sisaldab stringi, mis tähistab failinime, ilma teeteabeta
. Suurus leitud faili baitides.
. Aeg salvestab faili muutmiskuupäeva ja kellaaja failikuupäevana.
. FindData sisaldab lisateavet, näiteks faili loomise aeg, viimane juurdepääsuaeg ning nii pikk kui ka lühike failinimi.

Leia järgmine

Funktsioon FindNext on üksikasjaliku failiotsingu protseduuri teine ​​samm. Peate edastama sama otsingukirje (Rec), mis on loodud üleskutsega FindFirstile. Funktsiooni FindNext tagastusväärtus on õnnestumise korral null või vea puhul veakood.

FindClose

See protseduur on FindFirst / FindNext jaoks nõutav lõpetamiskutse.

Rekursiivne failimask, mis sobib otsinguga Delphis

See on projekt "Failide otsimine", nagu see kuvatakse töö ajal. Vormi kõige olulisemad komponendid on kaks redigeerimiskasti, üks loendikast, märkeruut ja nupp. Redigeerimiskaste kasutatakse otsitava tee ja failimaski määramiseks. Leitud failid kuvatakse kastis Loend ja kui ruut on märgitud, kontrollitakse kõigi alamkaustade vastavust failidele.

Allpool on toodud projekti väike koodilõik, mis näitab lihtsalt, et failide otsimine Delphi abil on nii lihtne kui võimalik: