Funcția Dir

Se aplică la
Access pentru Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Notă

Funcția, metoda, obiectul sau proprietatea descrisă în acest subiect este dezactivată dacă Microsoft Jet Expression Service rulează în modul sandbox, ceea ce împiedică evaluarea expresiilor potențial nesigure. Pentru mai multe informații despre modul sandbox, căutați "modul sandbox" în Ajutor.

Returnează un șir care reprezintă numele unui fișier, director sau folder care se potrivește cu un model sau atribut de fișier specificat sau cu eticheta de volum a unei unități.

Sintaxă

Dir[(numecale [, atribute] )]

Sintaxa funcției Dir are următoarele argumente:

Argument Descriere
nume cale Opțional. Expresia șir care specifică un nume de fișier — poate include director, folder și unitate. Este returnat un șir de lungime zero ("") dacă nu se găsește numele .
atribute Opțional. Expresie constantă sau numerică, a cărei sumă specifică atributele de fișier. Dacă este omisă, returnează fișierele care se potrivesc cu numele, dar nu au atribute.

    

Setări

Setările argumentelor atributelorsunt:

Constantă Valoare Descriere
vbNormal 0 (Implicit) Specifică fișiere fără atribute.
vbReadOnly 1 Specifică fișierele doar în citire, pe lângă fișierele fără atribute.
vbHidden 2 Specifică fișierele ascunse, pe lângă fișierele fără atribute.
Sistem VB 4 Specifică fișierele de sistem, pe lângă fișierele fără atribute. Nu este disponibilă pe Macintosh.
volum vb 8 Specifică eticheta volumului; dacă se specifică orice alt atribuit, vbVolume este ignorat. Nu este disponibilă pe Macintosh.
vbDirectory 16 Specifică directoare sau foldere, pe lângă fișiere fără atribute.
vbAlias 64 Numele de fișier specificat este un alias. Disponibil doar pe Macintosh.

    

Notă

Aceste constante sunt specificate de Visual Basic for Applications (VBA) și pot fi utilizate oriunde în cod în locul valorilor efective.

Observații

În Microsoft Windows, Dir acceptă utilizarea caracterelor wildcard cu mai multe caractere (*) și cu un singur caracter (?) pentru a specifica mai multe fișiere. Pe Macintosh, aceste caractere sunt tratate ca caractere valide de nume de fișier și nu pot fi utilizate ca caractere wildcard pentru a specifica mai multe fișiere.

Deoarece Macintosh nu acceptă caracterele wildcard, utilizați tipul de fișier pentru a identifica grupuri de fișiere. Puteți utiliza funcția MacID pentru a specifica tipul de fișier în loc să utilizați numele fișierelor. De exemplu, următoarea instrucțiune returnează numele primului fișier TEXT din folderul curent:

Dir("SomePath", MacID("TEXT"))

Pentru a itera peste toate fișierele dintr-un folder, specificați un șir gol:

Dir("")

Dacă utilizați funcția MacID cu Dir în Windows, se produce o eroare.

Orice valoare de atribut mai mare decât 256 este considerată valoare MacID .

Trebuie să specificați pathname prima dată când apelați funcția Dir sau se produce o eroare. Dacă specificați, de asemenea, atributele de fișier, trebuie inclus numele .

Dir returnează primul nume de fișier care se potrivește cu numele. Pentru a obține nume de fișier suplimentare care se potrivesc cu numele, apelați Dir din nou fără argumente. Atunci când nu mai există nume de fișiere care se potrivesc, Dir returnează un șir de lungime zero (""). După ce se returnează un șir de lungime zero, trebuie să specificați calea în apelurile următoare, altfel va apărea o eroare. Puteți trece la un nume de cale nou fără a regăsi toate numele de fișiere care se potrivesc cu numele căii curente. Totuși, nu puteți apela funcția Dir recursiv. Apelarea lui Dir cu atributul vbDirectory nu returnează continuu subdirectoare.

Sfat Deoarece numele de fișiere nu sunt regăsite într-o anumită ordine, se recomandă să stocați numele de fișiere returnate într-o matrice, apoi să sortați matricea.

Exemplu

Notă

Exemplele care urmează demonstrează utilizarea acestei funcții într-un modul Visual Basic for Applications (VBA). Pentru mai multe informații despre lucrul cu VBA, selectați Referințe pentru dezvoltatori în lista verticală de lângă Căutare și introduceți unul sau mai mulți termeni în caseta de căutare.

Acest exemplu utilizează funcția Dir pentru a verifica dacă există anumite fișiere și directoare. Pe Macintosh, "HD:" este numele implicit al unității și porțiuni din numele căii sunt separate prin două puncte în loc de bare oblice inverse. De asemenea, caracterele wildcard Windows sunt tratate ca caractere valide de nume de fișier pe Macintosh. Totuși, puteți utiliza funcția MacID pentru a specifica grupuri de fișiere.

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