Kā meklēt failus un mapes ar Delphi

click fraud protection

Meklējot failus, bieži ir noderīgi un nepieciešami meklēt apakšmapēs. Šeit skatiet, kā lietot DelfiSpēks ir izveidot vienkāršu, bet jaudīgu, visiem atbilstošu failu projektu.

Failu / mapju masku meklēšanas projekts

Šis projekts ne tikai ļauj meklēt failus apakšmapēs, bet arī ļauj viegli noteikt faila atribūtus, piemēram, vārdu, lielumu, modifikācijas datumu utt. lai jūs varētu redzēt, kad jāizvēlas dialoglodziņš File Properties no Windows Explorer. Jo īpaši tas parāda, kā rekursīvi meklēt apakšmapēs un apkopot to failu sarakstu, kuri atbilst noteiktai failu maskai. Rekursijas paņēmiens tiek definēts kā rutīna, kas saucas sava koda vidū.

Lai saprastu kodu projektā, mums jāiepazīstas ar nākamajām trim metodēm, kas definētas SysUtils vienībā: FindFirst, FindNext un FindClose.

Atrodiet pirmo

FindFirst ir inicializācijas zvans, lai sāktu detalizētu failu meklēšanas procedūru, izmantojot Windows API zvani. Meklēšana meklē failus, kas atbilst parametram Ceļš. Ceļš parasti ietver aizstājējzīmes (* un?). Parametrs Attr satur failu atribūtu kombinācijas, lai kontrolētu meklēšanu. Attr atzītās faila atribūtu konstantes ir:

instagram viewer
faAnyFile (jebkurš fails), faDirectory (direktoriji), faReadOnly (tikai lasāmi faili), faHidden (slēptie faili), faArchive (arhīva faili), faSysFile (sistēmas faili) un faVolumeID (apjoma ID faili).

Ja FindFirst atrod vienu vai vairākus atbilstošus failus, tas atgriež 0 (vai kļūdas kods kļūdas gadījumā, parasti 18) un aizpilda Rec ar informāciju par pirmo atbilstošo failu. Lai turpinātu meklēšanu, mums jāizmanto tas pats TSearcRec ieraksts un jānodod to FindNext funkcijai. Kad meklēšana ir pabeigta, ir jāizsauc procedūra FindClose, lai atbrīvotu iekšējos Windows resursus. TSearchRec ir ieraksts, kas definēts kā:

Kad pirmais fails ir atrasts, Rec parametrs ir aizpildīts, un jūsu projekts var izmantot šādus laukus (vērtības).
. Attr, faila atribūti, kā aprakstīts iepriekš.
. Vārds satur virkni, kas apzīmē faila nosaukumu, bez ceļa informācijas
. Izmērs atrasta faila baitos.
. Laiks saglabā faila modifikācijas datumu un laiku kā faila datumu.
. FindData satur papildu informāciju, piemēram, faila izveides laiku, pēdējās piekļuves laiku, kā arī garo un īso failu nosaukumus.

Atrast nākamo

Funkcija FindNext ir detalizētas failu meklēšanas procedūras otrais solis. Jums jāiziet tas pats meklēšanas ieraksts (Rec), kas tika izveidots, zvanot uz FindFirst. Atgriešanās vērtība no FindNext ir nulle panākumiem vai kļūdas kods jebkurai kļūdai.

FindClose

Šī procedūra ir nepieciešama, lai izsauktu meklēšanu FindFirst / FindNext.

Rekursīvā failu maska, kas atbilst meklēšanai Delfā

Tas ir projekts "Failu meklēšana", kā tas parādās izpildes laikā. Svarīgākie veidlapas komponenti ir divi rediģēšanas lodziņi, viens saraksta lodziņš, izvēles rūtiņa un poga. Rediģēšanas rūtiņas tiek izmantotas, lai norādītu ceļu, kurā vēlaties meklēt, un faila masku. Atrasti faili tiek parādīti lodziņā Saraksts, un, ja izvēles rūtiņa ir atzīmēta, visas apakšmapes tiek skenētas, lai atrastu atbilstošos failus.

Zemāk ir neliels projekta fragments no projekta, tikai lai parādītu, ka failu meklēšana ar Delphi ir tik vienkārša, cik vien iespējams.

instagram story viewer