Functie Dir

Geeft de naam van een bestand, map of alle bestanden en mappen op stations of in mappen die aan het opgegeven zoekpad voldoen.

Syntaxis:


Dir [(PathName As String [, Attributes As Integer])]

Geretourneerde waarde:

String

Parameters:

PathName: Elke tekenreeksexpressie die het zoekpad, de map of het bestand specificeert. Dit argument kan alleen worden opgegeven de eerste keer dat u de functie Dir aanroept. Als u wilt, kunt u het pad invoeren in URL notation.

Attributes: Elke integer-expressie die bitsgewijze bestandskenmerken specificeert. De functie Dir retourneert alleen bestanden of mappen die overeenkomen met de opgegeven kenmerken. U kunt verschillende attributen combineren door de attribuutwaarden toe te voegen:

0 : Normale bestanden.

16 : Geeft alleen de naam van de map.

Gebruik dit attribuut om te controleren of een bestand of map bestaat, of om alle bestanden en mappen in een specifieke map te zien.

Voer het pad en de naam van een bestand volledig in om te controleren of het bestaat. Als de bestand of mapnaam niet bestaat, geeft de functie Dir een tekenreeks met lengte nul ("").

U kunt als volgt een lijst van alle bestaande bestanden in een specifieke map genereren: Wanneer u de Dir-functie voor het eerst aanroept, specificeert u het volledige zoekpad voor de bestanden, bijvoorbeeld 'D:\Files\*.ods'. Is het pad juist en vindt de zoekopdracht ten minste één bestand, dan geeft de Dir-functie de naam van het eerste bestand dat met het zoekpad overeenkomt. Voor extra bestandsnamen die met het pad overeenkomen, roept u 'Dir' nogmaals op, maar zonder argumenten.

Als u alleen mappen wilt retourneren, gebruikt u de attribuutparameter. Hetzelfde geldt als u de naam van een volume wilt bepalen (bijvoorbeeld een harde-schijfpartitie).

Foutcodes:

5 Ongeldige aanroep van procedure

53 Bestand niet gevonden

Voorbeeld:


Sub ExampleDir
' Geeft alle bestanden en mappen weer
Dim sPath As String
Dim sDir As String, sValue As String
    sDir="Mappen:"
    sPath = CurDir
    sValue = Dir$(sPath + getPathSeparator + "*",16)
    Do
        If sValue <> "." And sValue <> ".." Then
            If (GetAttr( sPath + getPathSeparator + sValue) And 16) >0 Then
                ' Pak de mappen
                sDir = sDir & chr(13) & sValue
            End If
        End If
        sValue = Dir$
    Loop Until sValue = ""
    MsgBox sDir,0,sPath
End Sub

Help ons, alstublieft!