Megjegyzés: A témakörben ismertetett függvény, metódus, objektum vagy tulajdonság le van tiltva, ha a Microsoft Jet Expression Service védőfalas üzemmódban fut, mivel ez megakadályozza az esetleg nem biztonságos kifejezések kiszűrését. A korlátozott engedélyekkel rendelkező üzemmódról többet tudhat meg, ha a súgóban rákeres a „korlátozott engedélyek” kifejezésre.
Az eredmény egy olyan karakterlánc, amely annak a fájlnak, könyvtárnak vagy mappának a nevét tartalmazza, amely megfelel egy adott mintázatnak vagy fájlattribútumnak, vagy egy meghajtó kötetcímkéjének.
Szintaxis
Dir[(elérési út [, attribútumok] )]
A Dir függvény argumentumai a következők:
Argumentum |
Leírás |
elérési út |
Nem kötelező. Karakterlánc-kifejezés, amely megad egy fájlnevet – tartalmazhat könyvtárt vagy mappát és meghajtót is. Ha a rendszer nem találja az elérési utat, nulla hosszúságú karakterláncot ("") ad eredményül. |
Attribútumok |
Nem kötelező. Állandó vagy numerikus kifejezés, amelynek összege megadja a fájlattribútumokat. Ha nincs megadva, a függvény azokat a fájlokat adja eredményül, amelyek megfelelnek az elérési útnak, de nincs attribútumuk. |
Beállítások
Az attribútumok argumentumbeállításai:
Állandó |
Érték |
Leírás |
vbNormal |
0 |
(Alapértelmezett) Az attribútum nélküli fájlokat adja meg. |
vbReadOnly |
1 |
Az attribútum nélküli fájlokon túl megadja a csak olvasható fájlokat is. |
vbHidden |
2 |
Az attribútum nélküli fájlokon túl megadja a rejtett fájlokat is. |
VbSystem |
4 |
Az attribútum nélküli fájlokon túl megadja a rendszerfájlokat is. Macintosh rendszeren nem érhető el. |
vbVolume |
8 |
Megadja a kötetcímkét; ha más attribútumot is megad, akkor a vbVolume argumentumot figyelmen kívül hagyja a függvény. Macintosh rendszeren nem érhető el. |
vbDirectory |
16 |
Az attribútum nélküli fájlokon túl megadja a könyvtárakat vagy mappákat is. |
vbAlias |
64 |
A megadott fájlnév egy hivatkozási név (alias). Csak Macintosh rendszeren érhető el. |
Megjegyzés: Ezeket az állandókat a Visual Basic for Applications (VBA) adja meg, és a kódban bárhol használhatja őket a tényleges értékek helyett.
Megjegyzések
Microsoft Windows rendszerben a * és a ? helyettesítő karaktert is használhatja a Dir függvény argumentumában arra, hogy több fájlt adjon meg. A Macintosh rendszer ezeket a karaktereket érvényes fájlnévkarakterként kezeli, így ezek nem használhatók helyettesítő karakterként több fájl megadására.
Mivel a Macintosh nem támogatja a helyettesítő karaktereket, használja a fájltípust a fájlcsoportok azonosítására. A MacID függvény segítségével megadhatja a fájltípust a fájlnevek használata helyett. A következő utasítás például az aktuális mappában lévő első TEXT (szöveges) fájl nevét adja eredményül:
Dir("SomePath", MacID("TEXT"))
Ha a mappa minden fájlján szeretne elvégezni valamit, adjon meg egy üres karaktersorozatot:
Dir("")
Ha a MacID függvényt Windows rendszeren használja a Dir függvénnyel, hiba lép fel.
A 256-nál nagyobb értékű attribútumokatMacID értéknek tekinti a rendszer.
Amikor először hívja meg a Dir függvényt, meg kell adnia egy elérési utat, különben hiba történik. Ha fájlattribútumot is megad, elérési utat is meg kell adnia.
A Dir az első olyan fájl nevét adja vissza, amely megfelel az elérési útnak. Ha további fájlneveket szeretne kapni, amelyek megfelelnek az elérési útnak, használja ismét argumentumok nélkül a Dir függvényt. Ha nincs több megfelelő fájlnév, akkor a Dir nulla hosszúságú karakterláncot ("") ad vissza. Miután a függvény visszaadott egy nulla hosszúságú karakterláncot, a következő hívások alkalmával meg kell adni egy elérési utat, különben hiba történik. Áttérhet új elérési útra úgy is, hogy nem kéri le az aktuális elérési útnak megfelelő összes fájlnevet. A Dir függvény azonban nem hívható rekurzív módon. Ha a Dir függvényt a vbDirectory attribútummal hívja meg, nem kapja meg az összes alkönyvtárt.
Tipp: Mivel a lekért fájlnevek tetszőleges sorrendben lehetnek, érdemes a fájlneveket egy tömbben tárolni, majd a tömböt sorrendbe állítani.
Példa
Megjegyzés: A következő példák egy Visual Basic for Applications (VBA) modulban mutatják be a függvény használatát. A VBA használatáról a Keresés elem mellett található legördülő listából a fejlesztői forrásokat választva, majd egy vagy több keresőszót megadva kaphat további tájékoztatást.
Ebben a példában a Dir függvénnyel ellenőrizheti, hogy bizonyos fájlok és könyvtárak léteznek-e. A Macintosh rendszerben az alapértelmezett meghajtónév „HD:”, és az elérési út részei között fordított ferde vonalak helyett kettőspontok vannak. A Macintosh rendszerben a Windows helyettesítő karaktereit érvényes fájlnévkarakterként kezeli a függvény. Fájlcsoportok megadására azonban használható a MacID függvény.
Dim MyFile, MyPath, MyName
' Returns "WIN.INI" (on Microsoft Windows) if it exists. MyFile = Dir("C:\WINDOWS\WIN.INI") ' Returns filename with specified extension. If more than one *.ini ' file exists, the first file found is returned. MyFile = Dir("C:\WINDOWS\*.INI") ' Call Dir again without arguments to return the next *.INI file in the ' same directory. MyFile = Dir ' Return first *.TXT file with a set hidden attribute. MyFile = Dir("*.TXT", vbHidden) ' Display the names in C:\ that represent directories. MyPath = "c:\" ' Set the path. MyName = Dir(MyPath, vbDirectory) ' Retrieve the first entry. Do While MyName <> "" ' Start the loop. ' Ignore the current directory and the encompassing directory. If MyName <> "." And MyName <> ".." Then ' Use bitwise comparison to make sure MyName is a directory. If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then Debug.Print MyName ' Display entry only if it End If ' it represents a directory. End If MyName = Dir ' Get next entry. Loop