Ako hľadať súbory a priečinky s

Pri hľadaní súborov je často užitočné a potrebné prehľadávať podpriečinky. Tu sa dozviete, ako používať DelphiSila vytvoriť jednoduchý, ale výkonný projekt na nájdenie všetkých súborov.

Projekt na vyhľadávanie masky súborov / priečinkov

Nasledujúci projekt vám umožňuje nielen vyhľadávať súbory prostredníctvom podpriečinkov, ale tiež umožňuje ľahko určiť atribúty súborov, ako sú napríklad Názov, Veľkosť, Dátum zmeny atď. takže vidíte, kedy môžete vyvolať dialógové okno Vlastnosti súboru z internetu Prieskumník systému Windows. Ukazuje najmä, ako rekurzívne prehľadávať podpriečinky a zostaviť zoznam súborov, ktoré zodpovedajú určitej maske súboru. Technika rekurzie je definovaná ako rutina, ktorá sa nazýva v strede svojho kódu.

Aby sme pochopili kód v projekte, musíme sa oboznámiť s nasledujúcimi tromi metódami definovanými v jednotke SysUtils: FindFirst, FindNext a FindClose.

FindFirst

FindFirst je inicializačné volanie na spustenie podrobného postupu vyhľadávania súborov Hovory rozhrania Windows API

instagram viewer
. Vyhľadá súbory, ktoré sa zhodujú so špecifikátorom cesty. Cesta zvyčajne obsahuje zástupné znaky (* a?). Parameter Attr obsahuje kombinácie atribútov súborov na riadenie vyhľadávania. Konštanty atribútov súborov rozpoznané v Attr sú: faAnyFile (akýkoľvek súbor), faDirectory (Adresáre), faReadOnly (súbory iba na čítanie), faHidden (skryté súbory), faArchive (archívne súbory), faSysFile (systémové súbory) a faVolumeID (súbory ID zväzku).

Ak FindFirst nájde jeden alebo viac zhodných súborov, vráti 0 (alebo chybový kód pre zlyhanie, zvyčajne 18) a vyplní do Rec informácie o prvom zhodujúcom sa súbore. Aby sme mohli pokračovať vo vyhľadávaní, musíme použiť rovnaký záznam TSearcRec a preniesť ho do funkcie FindNext. Po dokončení vyhľadávania sa musí zavolať postup FindClose, aby sa uvoľnili interné zdroje Windows. TSearchRec je záznam definovaný ako:

Keď sa nájde prvý súbor, vyplní sa parameter Rec a váš projekt môže použiť nasledujúce polia (hodnoty).
. attr, atribúty súboru, ako je opísané vyššie.
. názov obsahuje reťazec, ktorý predstavuje názov súboru, bez informácií o ceste
. veľkosť v bajtoch nájdeného súboru.
. čas uloží dátum a čas úpravy súboru ako dátum súboru.
. FindData obsahuje ďalšie informácie, ako napríklad čas vytvorenia súboru, posledný prístupový čas a dlhé aj krátke názvy súborov.

Nájdi ďaľší

Funkcia FindNext je druhým krokom v podrobnom postupe vyhľadávania súborov. Musíte odovzdať ten istý vyhľadávací záznam (Rec), ktorý bol vytvorený volaním FindFirst. Návratová hodnota z FindNext je nula pre úspech alebo kód chyby pre každú chybu.

FindClose

Tento postup je požadovaným ukončovacím volaním pre FindFirst / FindNext.

Vyhľadávanie rekurzívnej masky súborov v Delphi

Toto je projekt „Vyhľadávanie súborov“, ako sa zobrazuje v čase spustenia. Najdôležitejšie komponenty vo formulári sú dve editovacie polia, jedno zoznamové políčko, začiarkavacie políčko a tlačidlo. Upravovacie polia sa používajú na určenie cesty, v ktorej chcete vyhľadať, a masky súboru. Nájdené súbory sa zobrazia v poli Zoznam a ak je začiarknuté políčko, vyhľadajú sa všetky podpriečinky, či sa nezhodujú.

Nižšie je uvedený malý útržok kódu z projektu, ktorý len ukazuje, že vyhľadávanie súborov pomocou Delphi je také ľahké, ako len môže byť: