Функция Dir

Отнася се за
Access за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Забележка

Функцията, методът, обектът или свойството, описани в тази тема, са забранени, ако услугата за изрази Microsoft Jet се изпълнява в ограничителен режим, което пречи на изчисляването на потенциално опасни изрази. За повече информация относно ограничителния режим потърсете "ограничителен режим" в помощта.

Връща низ, представляващ името на файл, указател или папка, които съответстват на зададен шаблон или файлов атрибут, или етикета на том на устройство.

Синтаксис

Dir[(име_на_път[, атрибути] )]

Синтаксисът на функцията Dir има следните аргументи:

Аргумент Описание
име на път Незадължително. Низов израз, който задава име на файл – може да включва директория или папка и диск. Низ с нулева дължина (""), ако името на пътя не е намерено.
атрибути Незадължително. Константа или числов израз, чиято сума задава файлови атрибути. Ако липсва, връща файлове, които съответстват на 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("")

Ако използвате функцията MacID с Dir в Windows, възниква грешка.

Всяка стойност на атрибут , по-голяма от 256, се счита за стойност на MacID .

Трябва да зададете pathname първия път, когато извиквате функцията Dir , в противен случай ще възникне грешка. Ако зададете и атрибути на файла, трябва да бъде включено име на път .

Dir връща първото име на файл, което съответства на pathname. За да получите допълнителни имена на файлове, които съответстват на pathname, извикайте Dir отново без аргументи. Когато няма повече имена на файлове, които съвпадат, Dir връща низ с нулева дължина (""). След като се върне низ с нулева дължина, трябва да указвате pathname в следващите извиквания, иначе ще възникне грешка. Можете да промените името на нов път , без да извличате всички имена на файлове, които съответстват на текущото име на път. Не можете обаче да извикате функцията 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