Kuinka etsiä tiedostoja ja kansioita Delphin avulla

Kun etsit tiedostoja, on usein hyödyllistä ja välttämätöntä etsiä alikansioita. Täältä näet kuinka käyttää DelfoiVoimaa luoda yksinkertainen, mutta tehokas, kaikki-vastaavat-tiedostot -projekti.

Tiedosto- / kansiomaskinhakuprojekti

Seuraavan projektin avulla voit etsiä tiedostoja alikansioiden kautta, mutta se myös määrittää helposti tiedostoominaisuudet, kuten nimi, koko, muokkauspäivämäärä jne. joten näet, milloin tiedostoominaisuudet - valintaikkuna voidaan käynnistää Windowsin Resurssienhallinta. Erityisesti se osoittaa, kuinka voidaan rekursiivisesti etsiä alikansioista ja koota luettelo tiedostoista, jotka vastaavat tiettyä tiedostoa. Rekursiointitekniikka määritellään rutiiniksi, joka kutsuu itseään koodinsa keskelle.

Jotta ymmärtäisimme koodin projektissa, meidän on perehdyttävä kolmeen seuraavaan SysUtils-yksikössä määriteltyyn menetelmään: FindFirst, FindNext ja FindClose.

Findfirst

FindFirst on alustuskutsu yksityiskohtaisen tiedostohaun aloittamiseksi käyttämällä Windows API -soitto

instagram viewer
. Haku etsii tiedostoja, jotka vastaavat Polku-määritystä. Polku sisältää yleensä jokerimerkit (* ja?). Attr-parametri sisältää tiedostoominaisuuksien yhdistelmiä haun ohjaamiseksi. Attr: ssä tunnistetut tiedostoominaisuusvakiot ovat: faAnyFile (mikä tahansa tiedosto), faDirectory (Hakemistot), faReadOnly (vain luku-tiedostot), faHidden (piilotetut tiedostot), faArchive (arkistotiedostot), faSysFile (järjestelmätiedostot) ja faVolumeID (taltio ID-tiedostot).

Jos FindFirst löytää yhden tai useamman vastaavan tiedoston, se palauttaa arvon 0 (tai virhekoodin, yleensä 18) ja täyttää Rec: ssä tiedot ensimmäisestä vastaavasta tiedostosta. Jotta hakua voidaan jatkaa, meidän on käytettävä samaa TSearcRec-tietuetta ja siirrettävä se FindNext-toimintoon. Kun haku on suoritettu loppuun, FindClose-menettely on kutsuttava sisäisten Windows-resurssien vapauttamiseen. TSearchRec on tietue, joka määritetään seuraavasti:

Kun ensimmäinen tiedosto löytyy, Rec-parametri on täytetty, ja seuraavat projektit voivat käyttää seuraavia kenttiä (arvoja).
. attr, tiedoston määritteet yllä kuvatulla tavalla.
. Nimi omistaa merkkijonon, joka edustaa tiedostonimeä, ilman polkutietoja
. Koko löydetyn tiedoston tavuina.
. Aika tallentaa tiedoston muokkauspäivämäärän ja kellonajan tiedostopäivänä.
. FindData sisältää lisätietoja, kuten tiedoston luomisaika, viimeinen käyttöaika sekä sekä pitkät että lyhyet tiedostonimet.

findnext

FindNext-toiminto on toinen vaihe yksityiskohtaisessa tiedostohakumenettelyssä. Sinun on läpäistävä sama hakutietue (Rec), joka on luotu puhelulle FindFirstille. FindNextin palautusarvo on nolla menestykselle tai virhekoodi virheille.

FindClose

Tämä menettely on vaadittava lopetuskutsu FindFirst / FindNext-sovellukselle.

Rekursiivinen tiedostomaski, joka vastaa hakua Delphissä

Tämä on "Tiedostojen etsiminen" -projekti sellaisena kuin se näkyy ajon aikana. Tärkeimmät lomakkeen komponentit ovat kaksi muokkausruutua, yksi luetteloruutu, valintaruutu ja painike. Muokkaa-ruutuja käytetään määrittämään polku, josta haluat etsiä, ja tiedostomaski. Löydetyt tiedostot näytetään luetteloruudussa. Jos valintaruutu on valittu, kaikki alikansiot tarkistetaan vastaavien tiedostojen suhteen.

Alla on pieni koodinpätkä projektista vain osoittaaksesi, että tiedostojen etsiminen Delphin avulla on niin helppoa kuin voi olla:

instagram story viewer