Hogyan keressen fájlokat és mappákat a Delphi segítségével

Fájlok keresésekor gyakran hasznos és szükséges az almappák közötti keresés. Itt található, hogyan kell használni DelphiErőssége egy egyszerű, de hatékony, mindenki számára megfelelő fájlok projekt létrehozására.

Fájl / mappa maszk keresési projekt

A következő projekt nemcsak fájlokat kereshet almappákban, hanem könnyedén meghatározhatja a fájlattribútumokat is, mint például név, méret, módosítási dátum stb. így láthatja, mikor hívhatja meg a File Properties párbeszédpanelt a Windows Intéző. Konkrétan bemutatja, hogyan lehet rekurzívan keresni az almappákban, és összeállítani az adott fájlmaszknak megfelelő fájlok listáját. A rekurzió technikáját olyan rutinként definiálják, amely a kód közepén hívja fel magát.

Annak érdekében, hogy megértsük a kódot a projektben, meg kell ismerkednünk a SysUtils egységben meghatározott következő három módszerrel: FindFirst, FindNext és FindClose.

FindFirst

A FindFirst az inicializáló hívás a részletes fájlkeresési eljárás elindításához a Windows API hívások

instagram viewer
. A keresés az Út-specifikátornak megfelelő fájlokat keresi. Az elérési út általában helyettesítő karaktereket (* és?) Tartalmaz. Az Attr paraméter a fájl attribútumok kombinációit tartalmazza a keresés vezérléséhez. Az Attr-ben felismert fájl attribútumállandók: faAnyFile (bármilyen fájl), faDirectory (Könyvtárak), faReadOnly (csak olvasható fájlok), faHidden (rejtett fájlok), faArchive (archív fájlok), faSysFile (rendszerfájlok) és faVolumeID (kötet azonosító fájlok).

Ha a FindFirst egy vagy több megfelelő fájlt talál, akkor a 0 (vagy egy hibakód, általában 18) eredményt ad vissza, és az Rec-ben kitölti az első egyező fájl információit. A keresés folytatásához ugyanazt a TSearcRec rekordot kell használnunk, és át kell adnunk a FindNext funkciónak. A keresés befejezése után meg kell hívni a FindClose eljárást a belső Windows erőforrások felszabadításához. A TSearchRec rekord:

Az első fájl megtalálásakor az Rec paraméter meg van töltve, és a következő mezők (értékek) használhatók a projektben.
. attr, a fájl fent ismertetett attribútumai.
. Név a fájlnevet ábrázoló karakterláncot tartja elérési út nélkül
. Méret a megtalált fájl byte-jaiban.
. Idő a fájl módosítási dátumát és időpontját fájl dátumként tárolja.
. FindData további információkat tartalmaz, például a fájl létrehozásának idejét, az utolsó hozzáférési időt, valamint a hosszú és a rövid fájlnevet.

FindNext

A FindNext funkció a részletes fájlkeresési eljárás második lépése. Ugyanazt a keresési rekordot (Rec) kell átadnia, amelyet a FindFirst felhívásakor hoztak létre. A FindNext visszatérési értéke nulla a sikernél, vagy hibakód minden hiba esetén.

FindClose

Ez az eljárás szükséges a FindFirst / FindNext befejezéséhez.

Rekurzív fájlmaszk, amely megfelel a keresésnek a Delphiben

Ez a "Fájlok keresése" projekt, amint az futás közben megjelenik. Az űrlap legfontosabb alkotóelemei a két szerkesztőmező, egy lista, egy jelölőnégyzet és egy gomb. A szerkesztési mezőkkel megadhatja a keresni kívánt utat és a fájlmaszkot. A talált fájlok megjelennek a Lista mezőben, és ha a jelölőnégyzet be van jelölve, akkor az összes almappát megkeresi a megfelelő fájlok szempontjából.

Az alábbiakban egy kicsi kódrészlet található a projektből, csak annak bemutatása érdekében, hogy a fájlok Delphi segítségével történő keresése a lehető legkönnyebb: