Poznámka: Funkcia, metóda, objekt alebo vlastnosť, ktoré sú popísané v tejto téme, sú vypnuté, ak je služba Microsoft Jet Expression Service spustená v režime karantény, ktorý zabraňuje vo vyhodnocovaní možných nebezpečných výrazov. Ďalšie informácie o režime karantény nájdete vyhľadaním výrazu „režim karantény“ v Pomocníkovi.
Vráti reťazec, ktorý predstavuje názov súboru, adresára alebo priečinka, ktorý sa zhoduje so zadanou vzorkou alebo atribútom súboru, alebo označenie jednotky.
Syntax
Dir[(názovcesty [, atribúty] )]
Syntax funkcie Dir má tieto argumenty:
Argument |
Popis |
názovcesty |
Voliteľný argument. Reťazcový výraz, ktorý určuje názov súboru – môže obsahovať adresár alebo priečinok a jednotku. Reťazec s nulovou dĺžkou ("") sa vráti, ak zadaný názov cesty nie je možné nájsť. |
atribúty |
Voliteľný argument. Konštanta alebo numerický výraz, ktorého súčet určuje atribúty súborov. Ak sa tento argument vynechá, vráti súbory, ktoré síce zodpovedajú názvu cesty, no nemajú atribúty. |
Nastavenia
Nastavenia atribútovargument sú:
Konštanta |
Hodnota |
Popis |
vbNormal |
0 |
(Predvolené) Určuje súbory bez atribútov. |
vbReadOnly |
1 |
Okrem súborov bez atribútov určuje súbory, ktoré sú určené iba na čítanie. |
vbHidden |
2 |
Okrem súborov bez atribútov určuje skryté súbory. |
VbSystem |
4 |
Okrem súborov bez atribútov určuje systémové súbory. Nie je k dispozícii v počítačoch Macintosh. |
vbVolume |
8 |
Určuje menovku; ak je určený iný atribút, atribút vbVolume sa ignoruje. Nie je k dispozícii v počítačoch Macintosh. |
vbDirectory |
16 |
Okrem súborov bez atribútov určuje priečinky alebo súbory. |
vbAlias |
64 |
Zadaný názov súboru je alias. Je k dispozícii len v počítačoch Macintosh. |
Poznámka: Tieto konštanty určuje program Visual Basic for Applications (VBA) a môžete ich použiť kdekoľvek v kóde namiesto skutočných hodnôt.
Poznámky
Funkcia Dir v systéme Microsoft Windows podporuje používanie zástupného znaku viacerých znakov (*) a jedného znaku (?) na určovanie viacerých súborov. V počítači Macintosh sa tieto znaky považujú za platné znaky v názve súboru a nedajú sa použiť ako zástupné znaky na určovanie viacerých súborov.
Keďže Macintosh nepodporuje zástupné znaky, na identifikáciu skupiny súborov použite typ súboru. Namiesto názvov súborov môžete na určenie typu súboru použiť funkciu MacID. Nasledujúci výraz napríklad vráti názov prvého súboru typu TEXT v aktuálnom priečinku:
Dir("SomePath", MacID("TEXT"))
Ak chcete prechádzať všetkými súbormi v priečinku, zadajte prázdny reťazec:
Dir("")
Ak funkciu MacID použijete s funkciou Dir v systéme Windows, vyskytne sa chyba.
Všetky hodnoty atribútov vyššie ako 256 sa považujú za hodnotu MacID.
Pri prvom volaní funkcie Dir musíte zadať názov cesty, inak sa vyskytne chyba. Ak zadáte aj atribúty súboru, musí sa zahrnúť názov cesty .
Funkcia Dir vráti prvý názov súboru, ktorý sa zhoduje s názvom cesty. Ak chcete získať ďalšie názvy súborov, ktoré sa zhodujú s názvom cesty, znova zavolajte funkciu Dir bez argumentov. Ak sa nezhoduje viac názvov súborov, funkcia Dir vráti reťazec s nulovou dĺžkou (""). Po vrátení reťazca s nulovou dĺžkou musíte zadať názov cesty v nasledujúcich volaniach alebo sa vyskytne chyba. Na nový názov cesty môžete prejsť bez toho, aby ste načítali všetky názvy súborov, ktoré zodpovedajú aktuálnemu názvu cesty. Funkciu Dir však nemožno volať rekurzívne. Volanie funkcie Dir s atribútom vbDirectory nevracia nepretržite podadresáre.
Tip Keďže názvy súborov sa nenačítajú v konkrétnom poradí, možno budete chcieť uložiť vrátené názvy súborov do pole a potom zoradiť pole.
Príklad
Poznámka: Nasledujúce príklady ukazujú použitie tejto funkcie v module jazyka Visual Basic for Applications (VBA). Ak chcete získať ďalšie informácie o práci s jazykom VBA, vyberte z rozbaľovacieho zoznamu vedľa položky Hľadať možnosť Odkaz pre vývojára a do vyhľadávacieho poľa zadajte nejaké výrazy.
V tomto príklade je funkcia Dir použitá na kontrolu existencie určitých súborov a adresárov. V počítačoch Macintosh je „HD:“ predvolený názov jednotky a časti názvu cesty sú oddelené dvojbodkami, nie opačnými lomkami. V počítačoch Macintosh sa okrem toho zástupné znaky systému Windows považujú za platné znaky názvu súboru. Na určenie skupín súborov však môžete použiť funkciu MacID.
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