Hauptinhalt

dir

Auflisten von Ordnerinhalten

Beschreibung

dir listet Dateien und Ordner im aktuellen Ordner auf.

dir name listet Dateien und Ordner auf, die mit name übereinstimmen. Wenn name ein Ordner ist, listet dir die Inhalte des Ordners auf. Verwenden Sie die Platzhalter * und **, um Muster abzugleichen. dir *.mlx führt beispielsweise alle Dateien mit der Erweiterung .mlx auf, dir ** schließt alle Dateien in allen Unterordnern ein.

Beispiel

listing = dir(name) gibt Attribute in einem Strukturarray zurück, wie beispielsweise das Änderungsdatum der Dateien und Ordner.

Beispiel

Beispiele

alle reduzieren

Nehmen wir an, dass myfolder sich im aktuellen Arbeitsordner befindet und drei Dateien enthält. Listen Sie den Inhalt des Ordners auf.

dir myfolder
.          ..         myfile1.ext  myfile2.ext  myfile3.ext

Rufen Sie myfolder auf und listen Sie die Dateien mit 2 im Dateinamen und der Dateierweiterung .ext auf.

cd myfolder
dir *2*.ext
myfile2.ext

Mit dem Platzhalter ** zur rekursiven Suche können Sie die Dateien im aktuellen Ordner und dessen Unterordnern auflisten.

Nehmen wir an, dass der aktuelle Ordner diesen Inhalt hat.

file1.ext
folder2
     file2.ext
     folder3
         file3.ext

Listen Sie alle Dateien in der Hierarchie auf.

dir **
Files Found in Current Folder:

.          ..         file1.ext  folder2  

Files Found in: folder2

.          ..         file2.ext  folder3  

Files Found in: folder2/folder3

.          ..         file3.ext  

Beim Verarbeiten der Details mehrerer Dateien ist es oft nützlich, die Ausgabestruktur in eine Tabelle umzuwandeln.

Nehmen wir an, dass der aktuelle Ordner diesen Inhalt hat.

file1.ext
folder2
     file2.ext
     folder3
         file3.ext

Mit dem Platzhalter ** können Sie die Details der gesamten Hierarchie anfordern. Die Ausgabe ist ein Strukturarray. Das Feld date weist den Typ char auf, das Feld datenum ist eine serielle Datumszahl.

listing = dir("**")
listing = 

  11x1 struct array with fields:

    name
    folder
    date
    bytes
    isdir
    datenum

Wandeln Sie die Struktur in eine Tabelle um und ersetzen Sie date durch datetime-Werte.

tbl = struct2table(listing);
tbl.date = datetime(tbl.datenum,ConvertFrom="datenum");
tbl = removevars(tbl,"datenum")
tbl = 

  11x5 table

        name               folder                   date            bytes    isdir  
    _____________    ___________________    ____________________    _____    _____

    {'.'        }    {'/mycurrent'     }    01-Mar-2024 15:45:35      0      true
    {'..'       }    {'/mycurrent'     }    01-Mar-2024 15:44:10      0      true
    {'file1.ext'}    {'/mycurrent'     }    01-Mar-2024 15:45:45      8      false
    {'folder2'  }    {'/mycurrent'     }    01-Mar-2024 15:45:16      0      true 
    .
    .
    .

Um Untermengen der Daten zu finden, legen Sie einen Index in der Tabelle fest. Extrahieren Sie beispielsweise nur die Ordner und schließen Sie daraufhin die Ordner . und .. aus.

folders = tbl(tbl.isdir,:);
namedFolders = folders(~matches(folders.name,[".",".."]),:)
namedFolders =

  2x5 table

        name                folder                  date             bytes    isdir
    ___________    ______________________    ____________________    _____    _____

    {'folder2'}    {'/mycurrent'        }    01-Mar-2024 15:45:16      0      true 
    {'folder3'}    {'/mycurrent/folder2'}    01-Mar-2024 15:44:58      0      true 

Eingabeargumente

alle reduzieren

Datei- oder Ordnername mit vollständigem oder relativem Pfad, angegeben als Zeichenfolgenskalar oder Zeichenvektor.

Für Dateien und Ordner an einem Remote-Speicherort müssen Sie den vollständigen Dateipfad als URL (Uniform Resource Locator) angeben. Internet-URLs müssen den Protokolltyp "http://" oder "https://" enthalten. Weitere Informationen finden Sie unter Work with Remote Data.

Um nach Mustern zu suchen oder mehrere Ordner zu durchsuchen, verwenden Sie die Platzhalter * oder **. Die dir-Funktion behandelt das Zeichen * stets als Platzhalter, selbst in Dateisystemen, die * als Teil von Dateinamen unterstützen.

Platzhalter

Bedeutung

*

Wenn * Teil eines Datei- oder Ordnernamens ist, kann es für eine beliebige Anzahl Zeichen stehen. dir *.mat führt beispielsweise alle MAT-Dateien im aktuellen Ordner auf.

Wenn * Bestandteil des Pfads ist und nur neben Datei-Trennzeichen liegt, stellt es eine einzelne Hierarchieebene dar. dir */*.mat führt beispielsweise MAT-Dateien auf, die genau einen Ordner unter dem aktuellen Ordner liegen.

**

** stellt eine rekursive Suche durch Unterordner dar. dir ** führt beispielsweise die Dateien im aktuellen Ordner und dessen Unterordnern auf allen Ebenen auf. Zeichen neben einem **-Platzhalter müssen Dateitrennzeichen sein.

Auf Microsoft® Windows®-Systemen unterstützt dir von DOS generierte kurze Dateinamen sowie Dateiverknüpfungen (.lnk).

Ausgabeargumente

alle reduzieren

Dateiattribute, zurückgegeben als nx1-Strukturarray, wobei n die Anzahl der Dateien und Ordner ist, die name entsprechen.

Die Struktur umfasst diese Felder.

Feldname

Beschreibung

Klasse

name

Datei- oder Ordnername

char

folder

Position der Datei oder des Ordners

char

date

Zeitstempel mit dem Änderungsdatum

char

bytes

Größe der Datei in Byte

double

isdir

1, wenn name ein Ordner ist; 0, wenn name eine Datei ist

logical

datenum

Änderungsdatum als serielle Datumszahl

double

Bei Internet-URLs ist das Feld bytes NaN, wenn keine Informationen zur Dateigröße verfügbar sind.

Einschränkungen

  • MATLAB® unterstützt keine Internet-URLs, die eine Authentifizierung erfordern.

  • MATLAB Online™ unterstützt Internet-URLs, die mit Microsoft OneDrive™-Dateien und -Ordnern verknüpft sind; die installierte Version von MATLAB unterstützt nur lokale OneDrive-Dateien.

Tipps

  • Wenn dir eine Datei nicht abfragen kann, gibt die Funktion diese Standardwerte in der Ausgabestruktur zurück.

    date: '' 
    bytes: [] 
    isdir: 0 
    datenum: [] 
    

    Dieses Problem tritt meist auf, wenn ein symbolischer Link zu einem verschobenen, entfernten oder umbenannten Ziel abgefragt wird. Um diese ungültigen Einträge auszuschließen, können Sie die Struktur in eine Tabelle umwandeln und die Zeilen mit leeren Werten entfernen.

    listing = struct2table(dir); 
    listing(isempty(listing.bytes),:) = [];
    
  • Um eine Liste der auf Microsoft Windows-Plattformen verfügbaren Laufwerke zu erhalten, verwenden Sie den DOS-Befehl net use.

    dos("net use")

Erweiterte Fähigkeiten

alle erweitern

Versionsverlauf

Eingeführt vor R2006a

alle erweitern