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