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[(pathname [, attributes] )]
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. A függvény nulla hosszúságú karakterláncot ("") ad vissza, ha az elérési út nem található. |
| Attribútumok | Nem kötelező. Állandó vagy numerikus kifejezés, amelynek összege fájlattribútumokat határoz meg. Ha nincs megadva, olyan fájlokat ad vissza, amelyek megfelelnek az elérési út nevének , de nincsenek attribútumai. |
Beállítások
Az attribútumok argumentumbeállításaia következők:
| Á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
A Microsoft Windowsban a Dir több karakter (*) és egy karakter (?) helyettesítő karakterek használatát támogatja több fájl megadásához. 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 attribútumértékekMacID-értéknek minősülnek.
A Dir függvény első meghívásakor vagy hiba esetén meg kell adnia az elérési út nevét. Ha fájlattribútumokat is megad, az elérési út nevét is tartalmaznia kell.
A Dir az elérési útnak megfelelő első fájlnevet adja vissza. Ha további fájlneveket szeretne lekérni, amelyek megegyeznek az elérési út nevével, hívja meg újra a Dir függvényt argumentumok nélkül. Ha nincs több megfelelő fájlnév, akkor a Dir nulla hosszúságú karakterláncot ("") ad vissza. A nulla hosszúságú sztring visszaadása után meg kell adnia az elérési út nevét a későbbi hívásokban, vagy hiba történik. Az aktuális elérési útnévnek megfelelő összes fájlnév beolvasása nélkül válthat új elérési útra. 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 fájlnevek beolvasása nem meghatározott sorrendben, érdemes lehet egy tömbben tárolni a visszaadott fájlneveket, majd rendezni a tömböt.
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