Примечание
Функция, метод, объект или свойство, описанные в данном разделе, отключаются, если служба обработки выражений Microsoft Jet выполняется в режиме песочницы, который не позволяет рассчитывать потенциально небезопасные выражения. Для получения дополнительных сведений выполните в справке поиск по словам "режим песочницы".
Возвращает значение типа String, определяющее имя файла, каталога или папки, которое соответствует указанному шаблону, атрибуту файла либо метке тома диска.
Синтаксис
Dir[(pathname [, attributes] )]
Функция Dir имеет следующие аргументы:
| Аргумент | Описание |
|---|---|
| имя_пути | — необязательный аргумент. Строковое выражение, указывающее имя файла, может включать каталог или папку и диск. Если pathname не найден, возвращается строка нулевой длины (""). |
| атрибуты | — необязательный аргумент. Константное или числовое выражение, сумма которого задает атрибуты файла. Если этот параметр опущен, возвращает файлы, которые соответствуют pathname, но не имеют атрибутов. |
Параметры
Параметры аргумента атрибутов:
| Константа | Значение | Описание |
|---|---|---|
| vbNormal | 0 | (По умолчанию.) Определяет файлы без атрибутов. |
| vbReadOnly | 1 | В дополнение к файлам без атрибутов определяет файлы, доступные только для чтения. |
| vbHidden | 2 | В дополнение к файлам без атрибутов определяет скрытые файлы. |
| VbSystem | 4 | В дополнение к файлам без атрибутов определяет системные файлы. Недоступно в macOS. |
| vbVolume | 8 | Указывает метку тома; Если указан какой-либо другой атрибут, vbVolume игнорируется. Недоступно в macOS. |
| vbDirectory | 16 | В дополнение к файлам без атрибутов определяет каталоги (папки). |
| vbAlias | 64 | Указанное имя файла является псевдонимом. Доступно только в macOS. |
Примечание
Приведенные здесь константы определены в Visual Basic для приложений (VBA), что позволяет заменять ими числовые значения в любом месте программы.
Замечания
В Microsoft Windows Dir поддерживает использование подстановочных знаков с несколькими символами (*) и одним символом (?) для указания нескольких файлов. В macOS такие знаки воспринимаются как допустимые символы имени файла и не могут использоваться в качестве подстановочных знаков.
Так как macOS не поддерживает использование подстановочных знаков, для определения группы файлов используйте тип файла. Чтобы вместо имен файлов указать тип файла, воспользуйтесь функцией MacID. Например, следующий оператор возвращает имя первого текстового файла в текущей папке:
Dir("SomePath", MacID("TEXT"))
Чтобы вывести следующий файл в папке, укажите пустую строку:
Dir("")
При совместном использовании функций MacID и Dir в Windows возникнет ошибка.
Любое значение атрибутов больше 256 считается значением MacID .
При первом вызове функции Dir необходимо указать pathname, иначе возникнет ошибка. Если также указать атрибуты файла, необходимо включить pathname .
Dir возвращает первое имя файла, соответствующее pathname. Чтобы получить дополнительные имена файлов, соответствующие pathname, снова вызовите Dir без аргументов. Если других соответствий найдено не будет, функция Dir возвратит пустую строку (""). После возврата строки нулевой длины необходимо указать pathname в последующих вызовах, иначе возникнет ошибка. Вы можете изменить на новое имя пути , не получая все имена файлов, которые соответствуют текущему имени пути. Однако нельзя осуществить рекурсивный вызов функции Dir. С помощью функции Dir с атрибутом vbDirectory невозможно последовательно возвращать подкаталоги.
Совет Так как имена файлов извлекаются не в определенном порядке, может потребоваться сохранить возвращенные имена файлов в массиве, а затем отсортировать массив.
Пример
Примечание
В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
В этом примере функция Dir используется для того, чтобы убедиться в наличии определенных файлов и каталогов. В macOS диск по умолчанию обозначается «HD:», а части аргумента «путь» отделяются друг от друга двоеточиями вместо обратной косой черты. Кроме того, в macOS подстановочные знаки Windows воспринимаются как допустимые символы имени файла. Для указания группы файлов можно воспользоваться функцией 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