Dir Funksjon

Returnerer navnet på en fil, en katalog eller alle filene og katalogene på en stasjon eller i en katalog som samsvarer med den angitte søkebanen.

Syntaks:


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

Returverdi:

Streng

Parametre:

PathName: Ethvert strenguttrykk som spesifiserer søkebanen, katalogen eller filen. Dette argumentet kan bare spesifiseres første gang du kaller Dir-funksjonen. Hvis du vil, kan du angi banen i URL-notasjon.

Attributter: Ethvert heltallsuttrykk som spesifiserer bitvise filattributter. Dir-funksjonen returnerer bare filer eller kataloger som samsvarer med de angitte attributtene. Du kan kombinere flere attributter ved å legge til attributtverdiene:

0 : Normale filer.

16 : Returnerer kun navnet på katalogen.

Bruk dette attributtet for å sjekke om en fil eller katalog finnes, eller for å finne alle filer og mapper i en bestemt katalog.

For å sjekke om en fil eksisterer, skriv inn hele banen og navnet på filen. Hvis fil- eller katalognavnet ikke eksisterer, returnerer Dir-funksjonen en null-lengde streng ("").

For å generere en liste over alle eksisterende filer i en bestemt katalog, fortsett som følger: Første gang du kaller opp Dir-funksjonen, spesifiser hele søkebanen for filene, for eksempel "D:\Files\*.ods". Hvis banen er riktig og søket finner minst én fil, returnerer Dir-funksjonen navnet på den første filen som samsvarer med søkebanen. For å returnere flere filnavn som samsvarer med banen, ring Dir igjen, men uten argumenter.

For kun å returnere kataloger, bruk attributtparameteren. Det samme gjelder hvis du vil bestemme navnet på et volum (for eksempel en harddiskpartisjon).

Feilkoder

5 Ugyldig prosedyreoppkall

53 Fant ikke filen

Eksempel:


Sub ExampleDir
' Viser alle filer og kataloger
Dim sPath As String
Dim sDir As String, sValue As String
    sDir="Kataloger:"
    sPath = CurDir
    sValue = Dir$(sPath + getPathSeparator + "*",16)
    Do
        If sValue <> "." And sValue <> ".." Then
            If (GetAttr( sPath + getPathSeparator + sValue) And 16) >0 Then
                'Hent katalogene
                sDir = sDir & chr(13) & sValue
            End If
        End If
        sValue = Dir$
    Loop Until sValue = ""
    MsgBox sDir,0,sPath
End Sub

Supporter oss!