Dir, functie

Van toepassing op
Access voor Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Opmerking

De functie, methode, object of eigenschap die in dit onderwerp wordt beschreven, is uitgeschakeld als de Microsoft Jet Expression-service wordt uitgevoerd in de sandbox-modus, waardoor de evaluatie van mogelijk onveilige expressies wordt voorkomen. Zoek naar 'sandbox-modus' in de Help voor meer informatie over de sandboxmodus.

Deze functie retourneert een tekenreeks die de naam vertegenwoordigt van een bestand of map die overeenkomt met een bepaald patroon of kenmerk, of het volumelabel van een schijf.

Syntaxis

Dir[(padnaam [, kenmerken] )]

De syntaxis van de functie Dir bevat deze argumenten:

Argument Beschrijving
padnaam Optioneel. Een tekenreeksexpressie die verwijst naar een bestandsnaam, die een map en station kan bevatten. Een tekenreeks met lengte nul ("") wordt geretourneerd als padnaam niet wordt gevonden.
kenmerken Optioneel. Constante of numerieke expressie, waarvan de som bestandskenmerken specificeert. Als u dit weglaat, worden bestanden geretourneerd die overeenkomen met padnaam , maar geen kenmerken hebben.

    

Instellingen

De instellingen voor hetkenmerkargument zijn:

Constante Waarde Beschrijving
vbNormal 0 (Standaard) Verwijst naar bestanden zonder kenmerken.
vbReadOnly 1 Verwijst naar bestanden met het kenmerk Alleen-lezen en bestanden zonder kenmerken.
vbHidden 2 Verwijst naar verborgen bestanden en bestanden zonder kenmerken.
VbSystem 4 Verwijst naar systeembestanden en bestanden zonder kenmerken. Niet beschikbaar voor de Mac.
vbVolume 8 Verwijst naar het volumelabel; als er ook een ander kenmerk is opgegeven, wordt vbVolume genegeerd. Niet beschikbaar voor de Mac.
vbDirectory 16 Verwijst naar mappen en naar bestanden zonder kenmerken.
vbAlias 64 De opgegeven bestandsnaam is een alias. Alleen beschikbaar voor de Mac.

    

Opmerking

Deze constanten worden opgegeven door Visual Basic for Applications (VBA) en kunnen overal in de code worden gebruikt in plaats van de werkelijke waarden.

Opmerkingen

In Microsoft Windows ondersteunt Dir het gebruik van jokertekens met meerdere tekens (*) en één teken (?) om meerdere bestanden op te geven. Op de Mac worden deze tekens behandeld als letterlijke tekens uit de bestandsnaam en kunnen ze dus niet worden gebruikt als jokertekens om meerdere bestanden op te geven.

Aangezien de Mac geen ondersteuning biedt voor jokertekens, gebruik u het bestandstype om groepen bestanden te identificeren. U kunt de functie MacID gebruiken om het bestandstype op te geven in plaats van de bestandsnamen te gebruiken. Met de volgende instructie wordt bijvoorbeeld het eerste TEXT-bestand in de huidige map geretourneerd:

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

Als u alle bestanden in een map wilt opvragen, gebruikt u een lege tekenreeks:

Dir("")

Als u de functie MacID gebruikt met Dir in Windows, treedt er een fout op.

Alle kenmerken die groter zijn dan 256, worden beschouwd als een MacID-waarde .

U moet de padnaam opgeven wanneer u de functie Dir voor het eerst aanroept, anders treedt er een fout op. Als u ook bestandskenmerken opgeeft, moet padnaam worden opgenomen.

Dir retourneert de eerste bestandsnaam die overeenkomt met padnaam. Als u aanvullende bestandsnamen wilt ophalen die overeenkomen met padnaam, roept u Dir opnieuw aan zonder argumenten. Als er geen bestanden meer worden gevonden, retourneert Dir een tekenreeks met de lengte nul (""). Zodra een tekenreeks met lengte nul wordt geretourneerd, moet u padnaam opgeven in volgende aanroepen, anders treedt er een fout op. U kunt overschakelen naar een nieuwe padnaam zonder alle bestandsnamen op te halen die overeenkomen met de huidige padnaam. Het is echter niet mogelijk om de functie Dir recursief aan te roepen. Als u Dir aanroept met het kenmerk vbDirectory, worden niet steeds submappen geretourneerd.

Tip Omdat bestandsnamen in een bepaalde volgorde worden opgehaald, kunt u de geretourneerde bestandsnamen opslaan in een matrix en de matrix vervolgens sorteren.

Voorbeeld

Opmerking

In de volgende voorbeelden wordt het gebruik van deze functie in een VBA-module (Visual Basic for Applications) toegelicht. Meer informatie over het werken met VBA vindt u door in de vervolgkeuzelijst naast Zoeken de optie Referentie voor ontwikkelaars te selecteren en een of meer termen in het zoekvenster te typen.

In dit voorbeeld wordt de functie Dir gebruikt om te controleren of bepaalde bestanden en mappen bestaan. Op de Macintosh is 'HD:' de standaardnaam van het station en delen van de padnaam worden gescheiden door dubbele punten in plaats van backslashes. De Windows-jokertekens worden ook behandeld als geldige bestandsnaamtekens op de Macintosh. U kunt echter de functie MacID gebruiken om bestandsgroepen op te geven.

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