Bemærk!: Funktionen, metoden, objektet eller egenskaben, der er beskrevet i dette emne, deaktiveres, hvis Microsoft Jet Expression Service kører i sandkassetilstand, hvilket forhindrer evalueringen af potentielt usikre udtryk. Søg efter "sandkassetilstand" i Hjælp, hvis du vil have mere at vide om sandkassetilstand.
Returnerer en Streng, der repræsenterer navnet på en fil, et bibliotek eller en mappe, der svarer til et bestemt mønster eller en filattribut eller enhedsnavnet for et drev.
Syntaks
Dir[(stinavn [, attributter] )]
Syntaksen for funktionen InputBox har disse argumenter:
Argument |
Beskrivelse |
stinavn |
Valgfrit. Strengudtryk, der angiver et filnavn – kan indeholde bibliotek eller mappe samt drev. Der returneres en tom streng (""), hvis stinavn ikke bliver fundet. |
attributter |
Valgfrit. Konstant eller numerisk udtryk, hvis sum angiver filattributter. Hvis det udelades, returneres der filer, der passer med stinavn, men som ikke har nogen attributter. |
Indstillinger
Indstillingerne for attributterargument er:
Konstant |
Værdi |
Beskrivelse |
vbNormal |
0 |
(Standard) Angiver filer uden attributter. |
vbReadOnly |
1 |
Angiver skrivebeskyttede filer samt filer uden attributter. |
vbHidden |
2 |
Angiver skjulte filer samt filer uden attributter. |
VbSystem |
4 |
Angiver systemfiler samt filer uden attributter. Ikke tilgængelig på Macintosh. |
vbVolume |
8 |
Angiver diskenhedsetiket. hvis der er angivet andre tilskrevet, ignoreres vbVolume . Ikke tilgængelig på Macintosh. |
vbDirectory |
16 |
Angiver biblioteker eller mapper samt filer uden attributter. |
vbAlias |
64 |
Angivet filnavn er et alias. Kun tilgængelig på Macintosh. |
Bemærk!: Disse konstanter angives af Visual Basic for Applications (VBA) og kan bruges overalt i din kode i stedet for de faktiske værdier.
Bemærkninger
I Microsoft Windows understøtter Dir brug af jokertegn bestående af flere tegn (*) og af enkelttegn (?) til angivelse af flere filer. På Macintosh behandles disse tegn som gyldige tegn i filnavne og kan ikke bruges som jokertegn til at angive flere filer.
Da Macintosh ikke understøtter jokertegnene, skal du bruge filtypen til at identificere grupper af filer. Du kan bruge funktionen MacID til at angive filtypen i stedet for at bruge filnavnene. Følgende sætning returnerer eksempelvis navnet på den første TEKST-fil i den aktuelle mappe:
Dir("SomePath", MacID("TEXT"))
Hvis du vil gentage over alle filer i en mappe, skal du angive en tom streng:
Dir("")
Hvis du bruger funktionen MacID sammen med funktionen Dir i Windows, opstår der en fejl.
En hvilken som helst attribut-værdi større end 256 betragtes som en MacID-værdi.
Du skal angive stinavn, første gang du kalder funktionen Dir, da der ellers opstår en fejl. Hvis du også angiver filattributterne, skal stinavn medtages.
Dir returnerer det første filnavn, der matcher stinavn. For at få eventuelle yderligere filnavne, der matcher stinavn, skal du kalde Dir igen uden nogen argumenter. Når der ikke er flere filnavne, der matcher, returnerer Dir en tom streng (""). Når der returneres en tom streng, skal du angive stinavn i efterfølgende opkald, da der ellers opstår en fejl. Du kan ændre til et nyt stinavn uden at hente alle de filnavne, der matcher det aktuelle stinavn. Men du kan ikke kalde funktionen Dir rekursivt. Kald af Dir med attributten vbDirectory returnerer ikke kontinuerligt undermapper.
Tip! Fordi filnavne ikke hentes i nogen bestemt rækkefølge, kan det være en ide at gemme de returnerede filnavne i en matrix og derefter sortere matricen.
Eksempel
Bemærk!: Følgende eksempler demonstrerer brugen af denne funktion i et VBA-modul (Visual Basic for Applications). Hvis du vil have mere at vide om at arbejde med VBA, skal du vælge Udviklerreference på rullelisten ud for Søg og skrive ét eller flere ord i søgefeltet.
I dette eksempel bruges funktionen Dir til at kontrollere, om bestemte filer og mapper findes. På Macintosh er "HD:" navnet på standarddrevet, og dele af stinavnet er adskilt af kolon i stedet for omvendte skråstreger. Desuden behandles Windows-jokertegn som gyldige filnavnetegn på en Macintosh. Du kan dog bruge funktionen MacID til at angive filgrupper.
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