Lectia 12 - crearea unei liste de fisiere - surse delphi faq

Nu atât de des, dar uneori este necesar ca programul să obțină o listă de fișiere sau subdirectoare în director. Pentru cei care folosesc KOL și MCK, există deja 3 modalități de a rezolva această problemă. Adevărul este normal, în opinia mea, la urma urmei, doar unul :) Luați totul în considerare.







Prima metodă. „Tradițională“.

Utilizați în mod tradițional 3 funcții API: FindFirstFile (caută primul fișier din lista de fișiere), FindNextFile (caută fișierul următor). FindClose (încetarea căutării). De obicei, primele 2 funcții sunt înlocuite cu VCL-surogatele FindFirst, FindNext. Pentru noi, acestea nu sunt pe deplin acceptabile, pentru că pentru a utiliza aceste funcții trebuie să conectați biblioteca Sysutils. Iar acest lucru este cunoscut pentru a adăuga grăsimi suplimentare la programele noastre combinate atletic :-). Un exemplu pe un API pur cu un amestec de KOL.

Explicarea atributelor pentru fișierele pe care le căutați:

  • FILE_ATTRIBUTE_ARCHIVE - fișier de arhivă.
  • FILE_ATTRIBUTE_COMPRESSED - fișier sau dosar comprimat.
  • FILE_ATTRIBUTE_HIDDEN - fișier ascuns.
  • FILE_ATTRIBUTE_NORMAL este un fișier obișnuit.
  • FILE_ATTRIBUTE_OFFLINE - datele fișierelor nu sunt disponibile. Indică faptul că aceste fișiere au fost mutați fizic.
  • FILE_ATTRIBUTE_READONLY este un fișier numai pentru citire.
  • FILE_ATTRIBUTE_SYSTEM - fișier de sistem.
  • FILE_ATTRIBUTE_TEMPORARY - fișier temporar.
  • FILE_ATTRIBUTE_DIRECTORY - director






A doua metodă. Pe frunte.

În ciuda simplității codului prezentat, această operațiune poate fi și mai ușoară, deoarece Lista însăși poate afișa fișiere într-un anumit director. Pentru aceasta, trebuie să accesați proprietatea AddDirList. Exemplul este chiar mai mic.

Aceasta este cu siguranță o modalitate interesantă de a obține lista fișierelor, dar nu funcțională :) Nu creați o fereastră de fiecare dată când lista Listbox sau СomboBox (are aceeași proprietate) pentru a obține o listă de fișiere. Și dintr-un motiv oarecare lista de ieșire a fișierelor sub formă de "nume scurte" (adică ca în DOS). Cel mai probabil, Vladimir Kladov a adăugat această proprietate ca o caracteristică interesantă și nu mai mult.

A treia metodă. "Așa cum ar trebui să fie"

Ei bine, și cel mai interesant :) În KOL există un obiect destinat creării unei liste de fișiere. Acesta este PDirList. Aici designerul său:

DirPath - director scanat
Filter - filtru pentru fișiere sau directoare
Attr - Atribute

Lista metodelor și a proprietăților pentru lucrul cu acest obiect:







Trimiteți-le prietenilor: