LibreOffice 24.8 Hjelp
Returnerer namnet på ei fil, ein katalog eller alle filene og katalogane på eit drev eller i ein katalog som passer til den spesifiserte søkjestien.
Dir [(PathName As String [, Attributes As Integer])]
Streng
PathName: Eit strenguttrykk som spesifiserer søkjestien, katalogen eller fila. Dette argumentet kan berre spesifiserast første gongen du kallar opp Dir-funksjonen. Om du ønskjer det, kan du skriva inn søkjestien i URL-notasjon.
Attributes: Eit heiltalsuttrykk som spesifiserer bitvise filattributt. Dir-funksjonen returnerer berre filer eller katalogar som høver med dei spesifiserte attributta. Du kan kombinera fleire attributt ved å leggja saman attributtverdiane:
0: Normale filer.
16: Returnerer berre namnet på katalogen.
Bruk dette attributtet for å kontrollera om ei fil eller ein katalog finst eller for å bestemme alle filene og mappene i ein bestemt katalog.
For å kontrollera om ei fil finst, skriv inn fullstendig sti og filnamn. Dersom fila eller katalogen ikkje finst, vil Dir-funksjonen returnera ein tom streng ("").
For å laga ei liste over alle filene i ein bestemt katalog, må du den første gongen du kallar opp Dir-funksjonen skriva inn den fullstendige søkjestien for filene, for eksempel «D:\Filer\*.sxw». Dersom søkjestien er korrekt og det vert funne i det minste éi fil, vil Dir-funksjonen returnera namnet på den første fila som passar med søket. For å finna fleire filnamn som passar søket, kall opp Dir-funksjonen igjen, men utan argument.
Om du ønskjer at berre katalogane skal returnerast, brukar du attributtparameteren. Det same gjer du dersom du ønskjer å finna namnet på eit lagringsmedium, for eksempel ein harddiskpartisjon.
Sub ExampleDir
' Viser alle filer og katalogar
Dim sPath As String
Dim sDir As String, sValue As String
sDir="Katalogar:"
sPath = CurDir
sValue = Dir$(sPath + getPathSeparator + "*",16)
Do
If sValue <> "." And sValue <> ".." Then
If (GetAttr( sPath + getPathSeparator + sValue) And 16) >0 Then
' Hent katalogane
sDir = sDir & chr(13) & sValue
End If
End If
sValue = Dir$
Loop Until sValue = ""
MsgBox sDir,0,sPath
End Sub