Opmerking
De functie, de methode, het object of de eigenschap die in dit onderwerp wordt beschreven, is uitgeschakeld als de Microsoft Jet Expression-service wordt uitgevoerd in de sandboxmodus. Hierdoor wordt de evaluatie van potentieel onveilige expressies voorkomen. Zoek in de Help naar 'sandbox-modus' voor meer informatie over de sandbox-modus.
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 [, attributen])]
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. Er wordt een tekenreeks met de lengte nul ("") geretourneerd als padnaam niet wordt gevonden. |
| kenmerken | Optioneel. Een constante of numerieke expressie waarvan de som bestandskenmerken aangeeft. Als u dit argument weglaat, bestaat het resultaat uit bestanden die overeenkomen met padnaam, maar die geen kenmerken hebben. |
Instellingen
De argumentinstellingen voor kenmerkenzijn:
| 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 voor 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.
Een kenmerkenwaarde groter dan 256 wordt beschouwd als een MacID-waarde .
U moet de padnaam opgeven als 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 ook andere bestandsnamen wilt opvragen 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 (""). Als een tekenreeks met lengte nul wordt geretourneerd, moet u de padnaam opgeven in volgende aanroepen om te voorkomen dat er een fout optreedt. U kunt een andere padnaam kiezen 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 Aangezien bestandsnamen in willekeurige volgorde worden opgehaald, kan het handig zijn om geretourneerde bestandsnamen op te slaan in een matrix en de matrix vervolgens te 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 een Mac is 'HD:' de naam van de standaardschijf. Onderdelen van de padnaam worden gescheiden door een dubbele punt in plaats van backslashes. Bovendien worden Windows-jokertekens op de Mac behandeld als letterlijke tekens van de bestandsnaam. 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