Funkcija Dir

Vrne ime datoteke, mape ali vseh datotek in map na pogonu ali pa v mapi, ki se ujemajo z navedeno potjo iskanja.

Skladnja:

Dir [(Besedilo As String) [, Atribut As Integer]]

Vrnjena vrednost:

String

Parametri:

Besedilo: poljuben niz ali izraz, ki določa pot za iskanje, mapo ali datoteko. Ta argument se lahko navede samo pri prvem klicu funkcije Dir. Če želite, lahko tudi uporabljate zapis URL.

Atribut: poljuben cel izraz, katerega vrednost določa po bitih lastnosti datoteke. Funkcija Dir bo vrnila samo tiste datoteke in mape, ki ustrezajo navedenim atributom. Posamezne atribute lahko kombinirate, tako da jih seštevate.

0 : navadne datoteke.

16 : vrne samo ime mape.

Uporabite ta atribut, da ugotovite, ali datoteka ali mapa obstaja, ali pa da ugotovite vse datoteke in mape, ki se v konkretni mapi nahajajo.

Če želite ugotoviti, ali datoteka obstaja, vnesite v celoti njeno pot in ime. Če imenovana datoteka ne obstaja, bo funkcija Dir vrnila prazen niz ("").

Če želite ustvariti seznam vseh datotek, ki obstajajo v določeni mapi, sledite navodilom: Ob prvem klicu funkcije Dir navedite polno pot do datotek, npr. »D:\Datoteke\*.ods«. Če je pot pravilna in če je zadetek iskanja vsaj ena datoteka, bo funkcija Dir vrnila ime te datoteke oziroma prve datoteke, ki ustreza navedenemu iskalnemu nizu. Do imen naslednjih datotek, ki poti ustrezajo, pridete s ponovnimi klici funkcije Dir, vendar tokrat brez argumentov.

Če želite samo mape, si pomagajte s parametrom atribut. Enako velja tudi v primeru, da želite ime pogona (npr. razdelka na trdem disku).

Kode napak:

5 Neveljaven klic procedure

53 Datoteke ni mogoče najti

Primer:

Sub ExampleDir

' izpiše vse datoteke in mape

Dim sPath As String

Dim sDir As String, sValue As String

    sMapa="Mape:"

    sPath = CurDir

    sValue = Dir$(sPath + getPathSeparator + "*",16)

    Do

        If sValue <> "." And sValue <> ".." Then

            If (GetAttr( sPath + getPathSeparator + sValue) And 16) >0 Then

                ' najdi mape

                sDir = sDir & chr(13) & sValue

            End If

        End If

        sValue = Dir$

    Loop Until sValue = ""

    MsgBox sDir,0,sPath

End Sub