Fájlok keresése a Delphi
- Először az első fájl, amely kielégíti egy előre meghatározott maszk. Ezt a keresést elvégezni
működnek FindFirst (const Path: String; Attr: integer; var F: TSearchRec): egész;
Attr paraméter tartalmaz egy sor olyan attribútumokat is figyelembe kell venni a kiválasztási fájlokat:
- faReadOnly = $ 01 - csak olvasható file;
- faHidden = $ 02 - egy rejtett fájl;
- faSysFile = $ 04 - egy rendszer fájl;
- faVolumeID = $ 08 - Volume label;
- faDirectory = 10 $ - könyvtár (a könyvtár);
- faArchive = $ 20 - egy archív fájlt;
- faAnyFile = $ 3F - tetszőleges állományt.
A nevek ezek a tulajdonságok eltérő nevei a különböző rendszerekben. Ez ad Delphi tekoe figyelmeztetés jelenik meg, hogy ezeket a neveket. Ezért jobb, ha nem használja a neveket és értékeket. Azonban akkor neponyatki: Próbáld meg kitalálni, akkor az $ 02 vagy $ 08. Ezért szükséges bevezetni állandók sotvetstvuet értékeket, és nem okoz problémát.
Ezek a tulajdonságok fontosak a kapott egyes bitek beleértve Attr. Hogy meghatározza az attribútumok a fájl szükséges, hogy egyszerűen összefoglalni:
Attr: = faReadOnly + faSysFile + faHidden;
Ez az attribútum hatására a funkció csak kereséshez rejtett rendszerfájlok jellegzetes „csak olvasható”.
találati tartalmazza a változó F. típusú, TSearchRec:
írja TSearchRec = rekord
Idő: integer;
Méret: integer;
Attr: integer;
Név: TFileName;
ExcludeAttr: integer;
FindHandle: THandle;
FindData: TWin32FindData;
végén;
A legfontosabb területek a rekord közül
- Név - a fájl neve;
- Méret - A méret a fájl byte;
- Time - Az idő jött létre a fájl DOS formátumban.
Annak eldöntésére, hogy az attribútum fájl található használt bitenkénti logikai szorzás:
ha (F.Attr és faDyrectory) = F.Attr
akkor S: = „Ez egy könyvtár”;
Ez azt jelenti, amelynek változtatható F.Attr kívánt attribútumot bitenkénti logikai szorzás nem változtatja meg.
működnek FindNext (var F: TSearchRec): egész;
Az F változó, amelyre az első feladata, hogy mentse a találatokat, FindNext funkció átadva paraméterként. Az információk alapján tárolt folytatódni fog új keresés.
eljárás FindClose (var F: TSearchRec);
Ez az eljárás felszabadítja a memóriát rendel a keresési folyamat rendszer.
Funkciók FindFirst és FindNext visszatérési értéke 0, ha a keresés nem talál hibát, és ha a fájlt talált.
Vegyük például egy egyszerű példa program. amely poizvodit keresése az összes fájlt a C meghajtón a program mappájában kezelni egy fájlt a keresés nem mászik. Tudod letölt a archívumot a program.