Hinweis: Die in diesem Thema beschriebene Funktion, Methode, Objekt oder Eigenschaft ist deaktiviert, wenn der Microsoft Jet-Ausdrucksdienst im Sandboxmodus ausgeführt wird, der die Auswertung potenziell unsicherer Ausdrücke verhindert. Weitere Informationen zum Sandboxmodus finden Sie, wenn Sie in der Hilfe nach "Sandboxmodus" suchen.
Gibt eine Zeichenfolge zurück, die den Namen einer einem bestimmten Muster oder Dateiattribut entsprechenden Datei oder eines solchen Verzeichnisses oder Ordners oder die Bezeichnung eines Laufwerks darstellt.
Syntax
Dir[(Pfadname [, Attribute] )]
Die Syntax der Dir-Funktion weist die folgenden Argumente auf:
Argument |
Beschreibung |
Pfadname |
Optional. Zeichenfolgenausdruck, der einen Dateinamen angibt – kann ein Verzeichnis oder einen Ordner sowie ein Laufwerk enthalten. Eine Zeichenfolge der Länge NULL ("") wird zurückgegeben wird, wenn Pfadname nicht gefunden wird. |
Attribute |
Optional. Konstante oder Numerischer Ausdruck, deren/dessen Summe Dateiattribute angibt. Wenn nicht angegeben, werden Dateien zurückgegeben, die Pfadname entsprechen, aber keine Attribute aufweisen. |
Einstellungen
Die Einstellungen für AttributeArgument sind:
Konstante |
Wert |
Beschreibung |
vbNormal |
0 |
(Standard) Gibt Dateien ohne Attribute an. |
vbReadOnly |
1 |
Gibt zusätzlich zu Dateien ohne Attribute schreibgeschützte Dateien an. |
vbHidden |
2 |
Gibt zusätzlich zu Dateien ohne Attribute ausgeblendete Dateien an. |
VbSystem |
4 |
Gibt zusätzlich zu Dateien ohne Attribute Systemdateien an. Auf einem Macintosh nicht verfügbar. |
vbVolume |
8 |
Gibt die Volumebezeichnung an; Wenn ein anderes Attribut angegeben wird, wird vbVolume ignoriert. Auf einem Macintosh nicht verfügbar. |
vbDirectory |
16 |
Gibt zusätzlich zu Dateien ohne Attribute Verzeichnisse oder Ordner an. |
vbAlias |
64 |
Der angegebene Dateiname ist ein Alias. Nur auf einem Macintosh verfügbar. |
Hinweis: Diese Konstanten werden von Visual Basic for Applications (VBA) angegeben und können an einer beliebigen Stelle in Ihrem Code anstelle der tatsächlichen Werte verwendet werden.
Anmerkungen
Unter Microsoft Windows unterstützt Dir die Verwendung von Platzhaltern mit mehreren (*) oder einzelnen (?) Zeichen zur Angabe mehrerer Dateien. Auf einem Macintosh-Computer werden diese Zeichen als gültige Zeichen des Dateinamens behandelt und können nicht als Platzhalter verwendet werden, um mehrere Dateien anzugeben.
Da Macintosh die Platzhalter nicht unterstützt, verwenden Sie den Dateityp, um Gruppen von Dateien zu identifizieren. Sie können die Funktion MacID anstelle der Dateinamen verwenden, um den Dateityp anzugeben. Beispielsweise gibt die folgende Anweisung den Namen der ersten TEXT-Datei im aktuellen Ordner zurück:
Dir("SomePath", MacID("TEXT"))
Geben Sie zum Durchlaufen aller Dateien in einem Ordner eine leere Zeichenfolge an:
Dir("")
Wenn Sie die MacID-Funktion mit Dir unter Windows verwenden, tritt ein Fehler auf.
Ein beliebiger Attribut-Wert größer als 256 wird als MacID-Wert betrachtet.
Sie müssen pathname angeben, wenn Sie die Dir-Funktion zum ersten Mal aufrufen, andernfalls tritt ein Fehler auf. Wenn Sie auch Dateiattribute angeben, muss pathname eingeschlossen werden.
Dir gibt den ersten Dateinamen zurück, der mit pathname übereinstimmt. Um zusätzliche Dateinamen zu erhalten, die dem Pfadnamen entsprechen, rufen Sie Dir ohne Argumente erneut auf. Wenn keine weiteren Dateinamen übereinstimmen, gibt Dir eine leere Zeichenfolge ("") zurück. Sobald eine Zeichenfolge der Länge Null zurückgegeben wird, müssen Sie pathname in nachfolgenden Aufrufen angeben, sonst tritt ein Fehler auf. Sie können in einen neuen Pfadnamen wechseln, ohne alle Dateinamen abzurufen, die dem aktuellen Pfadnamen entsprechen. Sie können die Dir-Funktion jedoch nicht rekursiv aufrufen. Das Aufrufen von Dir mit dem vbDirectory-Attribut gibt nicht kontinuierlich Unterverzeichnisse zurück.
Tipp Da Dateinamen in keiner bestimmten Reihenfolge abgerufen werden, empfiehlt es sich, zurückgegebene Dateinamen in einem Matrix zu speichern und dann das Array zu sortieren.
Beispiel
Hinweis: Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic for Applications). Wenn Sie weitere Informationen zum Arbeiten mit VBA wünschen, wählen Sie Entwicklerreferenz in der Dropdownliste neben Suchen aus, und geben Sie einen oder mehrere Begriffe in das Suchfeld ein.
In diesem Beispiel wird die Dir-Funktion verwendet, um zu überprüfen, ob bestimmte Dateien und Verzeichnisse vorhanden sind. Auf einem Macintosh-Computer ist "HD:" der Standardlaufwerkname, und Teile des Pfadnamens werden durch Doppelpunkte anstatt durch umgekehrte Schrägstriche voneinander getrennt. Darüber hinaus werden die Windows-Platzhalterzeichen auf dem Macintosh als gültige Zeichen des Dateinamens behandelt. Sie können jedoch die MacID-Funktion verwenden, um Dateigruppen anzugeben.
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