Забележка: Функцията, методът, обектът или свойството, описани в тази тема, се забраняват, ако услугата microsoft Jet Expression се изпълнява в ограничителен режим, което предотвратява оценяването на потенциално опасни изрази. За повече информация относно ограничителния режим потърсете "ограничителен режим" в помощта.
Връща стойност от тип String , представляваща името на файл, директория или папка, които съответстват на указан шаблон или файлов атрибут, или на етикета на том на устройство.
Синтаксис
Dir[(име път [, атрибути] )]
Синтаксисът на функцията Dir има следните аргументи:
Аргумент |
Описание |
Pathname |
Незадължително. Израз във формата на низ, който указва име на файл – може да включва директория или папка и устройство. Низ с нулева дължина ("") се връща, ако името на пътя не е намерено. |
Атрибути |
Незадължително. Константа или числов израз, чиято сума задава файлови атрибути. Ако липсва, връща файлове, които отговарят на името на пътя , но нямат атрибути. |
Настройки
Атрибутите аргумент настройките са:
Константа |
Value |
Описание |
vbNormal |
0 |
(По подразбиране) Задава файлове без атрибути. |
vbReadOnly |
1 |
Задава файлове само за четене в допълнение към файлове без атрибути. |
vbHidden |
2 |
Задава скрити файлове в допълнение към файлове без атрибути. |
VbSystem |
4 |
Задава системни файлове в допълнение към файлове без атрибути. Не е налично на Macintosh. |
vbVolume |
8 |
Задава етикет за силата на звука; ако е зададен друг атрибут, vbVolume се игнорира. Не е налично на Macintosh. |
vbDirectory |
16 |
Указва директории или папки в допълнение към файлове без атрибути. |
vbAlias |
64 |
Указаното име на файл е псевдоним. Налично само на Macintosh. |
Забележка: Тези константи са зададени от Visual Basic for Applications (VBA) и могат да се използват навсякъде във вашия код вместо действителните стойности.
Забележки
В Microsoft Windows Dir поддържа използването на няколко заместващи символа (*) и единичен знак (?), за да зададете множество файлове. На Macintosh тези знаци се третират като валидни знаци за имена на файлове и не могат да се използват като заместващи символи за задаване на множество файлове.
Тъй като Macintosh не поддържа заместващи символи, използвайте типа на файла, за да идентифицирате групи от файлове. Можете да използвате функцията MacID , за да зададете типа на файла, вместо да използвате имената на файловете. Например следната команда връща името на първия ТЕКСТов файл в текущата папка:
Dir("SomePath", MacID("TEXT"))
За да итерирате над всички файлове в дадена папка, задайте празен низ:
Dir("")
Ако използвате функцията MacID с Dir в Windows, възниква грешка.
Всяка стойност на атрибути , по-голяма от 256, се счита за стойност на MacID .
Трябва да зададете име на път при първото извикване на функцията Dir или възниква грешка. Ако укажете и файлови атрибути, трябва да бъде включено име на път .
Dir връща първото име на файл, което съответства на името на пътя. За да получите допълнителни имена на файлове, които отговарят на името на пътя, извикайте Dir отново без аргументи. Когато повече имената на файловете не съвпадат, Dir връща низ с нулева дължина (""). След като се върне низ с нулева дължина, трябва да зададете име на път в следващите повиквания или да възникне грешка. Можете да промените на ново име на път , без да извличате всички имена на файлове, които съответстват на текущото име на път. Въпреки това не можете да се обадите на функцията Dir рекурсивно. Извикването на Dir с атрибута vbDirectory не връща постоянно поддиректории.
Съвет Тъй като имената на файловете не се извличат в определен ред, може да съхраните върнатите имена на файлове в масив и след това да сортирате масива.
Пример
Забележка: Примерите по-долу илюстрират използването на тази функция във Visual Basic for Applications (VBA). За повече информация относно работата с VBA изберете Справочни материали за разработчици в падащия списък до Търсене и въведете един или няколко термина в полето за търсене.
Този пример използва функцията Dir , за да провери дали съществуват определени файлове и директории. На Macintosh "HD:" е името по подразбиране на устройството и части от името на пътя са разделени с двоеточия, а не с обратно наклонени черти. Освен това заместващите символи на Windows се третират като валидни знаци за име на файл в Macintosh. Можете обаче да използвате функцията 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