Märkus.: Kui Microsoft Jet Expression Service töötab liivakastirežiimis, mis takistab potentsiaalselt ebaturvaliste avaldiste väärtustamist, on käesolevas artiklis kirjeldatud funktsioon, meetod, objekt või atribuut keelatud. Liivakastirežiimi kohta lisateabe saamiseks otsige spikrist sõna „liivakastirežiim”.
Tagastatakse string faili, kataloogi või kausta nimega, mis vastab määratletud koodile, failiatribuudile või draivisildile.
Süntaks
Dir[(pathname [, attributes] )]
Funktsiooni Dir süntaksil on järgmised argumendid.
Argument |
Kirjeldus |
pathname |
Valikuline. Stringavaldis, mis tähistab failinime – võib viidata nii teegile, kaustale kui ka draivile. Kui argumenti pathname ei leita, tagastatakse nullpikkusega string („“). |
attributes |
Valikuline. Konstant või arvuline avaldis, mille summa määrab failiatribuudid. Kui see puudub, tagastatakse failid, mis vastavad atribuudile pathname, kuid millel pole ühtegi atribuuti. |
Sätted
Sättedargumentatribuudid on järgmised.
Konstant |
Väärtus |
Kirjeldus |
vbNormal |
0 |
(Vaikesäte.) Määrab atribuutideta failid. |
vbReadOnly |
1 |
Lisaks atribuutideta failidele määratakse kirjutuskaitstud failid. |
vbHidden |
2 |
Lisaks atribuutideta failidele määratakse peidetud failid. |
vbSystem |
4 |
Lisaks atribuutideta failidele määratakse süsteemifailid. Pole saadaval Macintoshi arvutis. |
vbVolume |
8 |
Määrab helitugevuse sildi; kui määratud on mõni muu atribuut, ignoreeritakse vbVolume'i . Pole saadaval Macintoshi arvutis. |
vbDirectory |
16 |
Lisaks atribuutideta failidele määratakse kataloogid ja kaustad. |
vbAlias |
64 |
Määratud failinimi on pseudonüüm. Saadaval vaid Macintoshi arvutis. |
Märkus.: Need konstandid määrab Visual Basic for Applications (VBA) ja neid saab koodis kasutada tegelike väärtuste asemel.
Kommentaarid
Microsoft Windowsis võimaldab funktsioon Dir failide määramisel kasutada mitmest märgist (*) ja ka üksikust märgist (?) koosnevaid metamärke. Macintoshis vaadeldakse neid märke kui sobivaid failnimemärke ning neid ei saa kasutada metamärkidena mitme faili määramisel.
Kuna Macintoshis metamärke ei toetata, kasutage failirühmade tuvastamiseks failitüüpi. Failinimede kasutamise asemel võite failitüübi määramisel kasutada ka funktsiooni MacID. Näiteks tagastatakse teile järgmise lausega praegusest kaustast failid, mille failitüübiks on „Tekst“.
Dir("SomePath", MacID("TEXT"))
Kausta kõigi failide itereerimiseks määrake tühi string.
Dir("")
Kui kasutate funktsiooni MacID Windowsi seadmes funktsiooniga Dir, tekib tõrge.
Kõik argumendi attributes väärtused, mis on suuremad kui 256, loetakse MacID väärtusteks.
Funktsiooni Dir esmakordsel kutsumisel tuleb määrata pathname või ilmneb tõrge. Kui määrate ka failiatribuudid, tuleb kaasata pathname .
Dir tagastab esimese failinime, mis vastab teenimele. Pathname'ile vastavate täiendavate failinimede hankimiseks kutsuge dir uuesti ilma argumentideta. Kui rohkem failinimesid ei ühti, tagastab funktsioon Dir nullpikkusega stringi (""). Kui tagastatakse nullpikkusega string, peate järgnevates kutsetes määrama teenime või ilmneb tõrge. Saate muuta uueks teenimeks , toomata kõiki praegusele teenimele vastavaid failinimesid. Funktsiooni Dir ei saa aga rekursiivselt kutsuda. Diri kutsumine atribuudiga vbDirectory ei tagasta pidevalt alamkatalooge.
Näpunäide Kuna failinimed tuuakse välja suvalises järjekorras, siis võiksite salvestada tagastatavad failinimed massiivi ja siis seda massiivi sortida.
Näide
Märkus.: Järgmised näited kujutavad selle funktsiooni kasutamist rakenduse Visual Basic for Applications (VBA) moodulis. Lisateabe saamiseks VBA-ga töötamise kohta valige välja Otsing kõrval kuvatavast ripploendist väärtus Tootearendusmaterjal ja sisestage otsinguväljale üks või mitu sõna.
Järgmises näites selgitatakse funktsiooni Dir abil välja kindlate failide ja kataloogide olemasolu. Macintoshis on vaikimisi kasutusel draivinimi „HD“ ning failiteenime osad on kurakriipsude asemel eraldatud koolonitega. Macintoshis loetakse Windowsi metamärgid sobivateks failinimemärkideks. Failirühmade määramiseks saate aga kasutada funktsiooni MacID.
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