Dir-Funktion

Hinweis: Wir möchten Ihnen die aktuellsten Hilfeinhalte so schnell wie möglich in Ihrer eigenen Sprache bereitstellen. Diese Seite wurde automatisiert übersetzt und kann Grammatikfehler oder Ungenauigkeiten enthalten. Unser Ziel ist es, Ihnen hilfreiche Inhalte bereitzustellen. Teilen Sie uns bitte über den Link am unteren Rand dieser Seite mit, ob die Informationen für Sie hilfreich sind. Hier finden Sie den englischen Artikel als Referenz.

Hinweis: Die Funktion, die Methode, das Objekt oder die Eigenschaft, die bzw. das in diesem Thema erläutert wird, ist deaktiviert, falls der Ausdrucksdienst in Microsoft Jet im geschützten Modus (Sandkastenmodus) ausgeführt wird. In diesem Modus wird die Auswertung von potenziell unsicheren Ausdrücken verhindert. Weitere Informationen zum geschützten Modus finden Sie in der Hilfe unter "Sandkastenmodus".

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 ist, 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 Pfadname angeben, wenn Sie die Dir-Funktion zum ersten Mal aufrufen. Andernfalls tritt ein Fehler auf. Wenn Sie auch Dateiattribute angeben, muss Pfadname einbezogen werden.

Dir gibt den ersten Dateinamen zurück, der Pfadname entspricht. Um weitere Dateinamen abzurufen, die Pfadname entsprechen, rufen Sie Dir ohne Argumente erneut auf. Wenn keine weiteren Dateinamen übereinstimmen, gibt Dir eine Zeichenfolge der Länge NULL ("") zurück. Wenn eine Zeichenfolge der Länge NULL zurückgegeben wird, müssen Sie Pfadname in nachfolgenden Aufrufen angeben. Andernfalls tritt ein Fehler auf. Sie können zu einem neuen Pfadnamen wechseln, ohne alle Dateinamen abzurufen, die dem aktuellen Pfadnamen entsprechen. Sie können die Dir-Funktion jedoch nicht rekursiv aufrufen. Wenn Sie Dir mit dem VbDirectory-Attribut aufrufen, werden die zugehörigen Unterverzeichnisse nicht fortlaufend zurückgegeben.

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
Ihre Office-Fähigkeiten erweitern
Schulung erkunden
Neue Funktionen als Erster erhalten
An Office Insider teilnehmen

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×