Примітка.
Функція, метод, об’єкт або властивість, описана в цьому розділі, недоступна, якщо Microsoft Jet Expression Service працює в режимі ізольованого програмного середовища, що запобігає обчисленню потенційно небезпечних виразів. Щоб отримати докладні відомості про режим ізольованого програмного середовища, у вікні довідки шукайте за запитом "режим ізольованого програмного середовища".
Повертає значення типу String, яке позначає ім’я файлу, каталогу або папки, що відповідає вказаному атрибуту шаблону чи файлу або ж позначці тому диска.
Синтаксис
Dir[(pathname [, attributes] )]
Синтаксис функції Dir має такі аргументи:
| Аргумент | Опис |
|---|---|
| pathname | Необов’язковий аргумент. Рядковий вираз, який указує ім’я файлу (також може називати каталог або папку й диск). Якщо шлях не знайдено, повертається рядок нульової довжини (""). |
| attributes | — необов’язковий аргумент. Константа або числова вираз, сума якої визначає атрибути файлу. Якщо цей аргумент пропущено, повертаються файли, які відповідають pathname, але не мають атрибутів. |
Параметри
Параметри аргументу атрибути:
| Константа | Значення | Опис |
|---|---|---|
| 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. Наприклад, наведений нижче оператор повертає ім’я першого файлу TEXT у поточній папці:
Dir("SomePath", MacID("TEXT"))
Щоб виконати ітерацію всіх файлів у папці, укажіть пустий рядок:
Dir("")
Якщо у Windows із функцією Dir використати MacID, станеться помилка.
Будь-яке значення атрибута , більше за 256, вважається значенням MacID .
Якщо функція Dir викликається вперше, слід указати pathname, інакше станеться помилка. Якщо також вказати атрибути файлу, обов'язково потрібно вказати шлях до файлу .
Dir повертає ім'я першого файлу, що відповідає pathname. Щоб отримати будь-які додаткові назви файлів, які відповідають pathname, викличте Dir ще раз без аргументів. Якщо більше немає відповідних імен файлів, функція Dir повертає рядок нульової довжини (""). Коли буде повернуто рядок нульової довжини, вам слід буде вказати pathname у подальших викликах, інакше станеться помилка. Ви можете змінити шлях на новий, не отримуючи всі імена файлів, які відповідають поточному шляху. Однак не можна викликати функцію Dir рекурсивно. Якщо викликати функцію Dir з атрибутом vbDirectory, не завжди повертатимуться підкаталоги.
Порада Оскільки імена файлів отримуються в довільному порядку, радимо зберегти повернуті імена файлів у масиві, а потім відсортувати його.
Приклад
Примітка.
У прикладах нижче показано використання цієї функції в модулі Visual Basic for Applications (VBA). Щоб отримати докладні відомості про використання модуля VBA, клацніть пункт Довідник розробника в розкривному списку поряд із полем Пошук і введіть у поле пошуку принаймні один термін.
У цьому прикладі функцію Dir використано, щоб перевірити, чи існують певні файли та каталоги. У системі Macintosh стандартне ім’я диска – "HD", а частини шляху відокремлюються двокрапками, а не зворотними скісними рисками. Крім того, у системі Macintosh символи узагальнення 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