Contenuto principale

dir

Elenco del contenuto della cartella

Descrizione

dir elenca i file e le cartelle della cartella corrente.

dir name elenca i file e le cartelle che corrispondono a name. Quando name è una cartella, dir elenca il contenuto della cartella. Utilizzare i caratteri jolly * e ** per abbinare i pattern. Ad esempio, dir *.mlx elenca tutti i file con estensione .mlx, mentre dir ** include i file in tutte le sottocartelle.

esempio

listing = dir(name) restituisce gli attributi in un array di struttura, come ad esempio quando ciascun file o cartella è stato modificato per l'ultima volta.

esempio

Esempi

comprimi tutto

Si supponga che myfolder si trovi nella cartella di lavoro corrente e contenga tre file. Elencare il contenuto.

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

Andare a myfolder ed elencare i file che presentano 2 nel nome del file e l'estensione .ext.

cd myfolder
dir *2*.ext
myfile2.ext

Elencare i file nella cartella corrente e nelle sue sottocartelle utilizzando il carattere jolly della ricerca ricorsiva **.

Si supponga che la cartella corrente abbia questi contenuti.

file1.ext
folder2
     file2.ext
     folder3
         file3.ext

Elencare tutti i file della gerarchia.

dir **
Files Found in Current Folder:

.          ..         file1.ext  folder2  

Files Found in: folder2

.          ..         file2.ext  folder3  

Files Found in: folder2/folder3

.          ..         file3.ext  

Quando si elaborano i dettagli di più file, è spesso utile convertire la struttura di output in una tabella.

Si supponga che la cartella corrente abbia questi contenuti.

file1.ext
folder2
     file2.ext
     folder3
         file3.ext

Richiedere i dettagli dell'intera gerarchia utilizzando il carattere jolly **. L'output è un array di struttura. Il campo date è di tipo char e il campo datenum è un numero di data seriale.

listing = dir("**")
listing = 

  11x1 struct array with fields:

    name
    folder
    date
    bytes
    isdir
    datenum

Convertire la struttura in una tabella e sostituire i valori date con i valori datetime.

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 
    .
    .
    .

Per trovare sottoinsiemi di dati, indicizzare sulla tabella. Ad esempio, estrarre solo le cartelle, quindi escludere le cartelle . e ...

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 

Argomenti di input

comprimi tutto

Nome del file o della cartella con percorso completo o relativo, specificato come scalare di stringa o vettore di caratteri.

Per i file e cartelle in una posizione remota, è necessario specificare il percorso completo come un localizzatore uniforme di risorse (URL). Gli URL di Internet devono includere il tipo di protocollo "http://" o "https://". Per maggiori informazioni, vedere Work with Remote Data.

Per cercare pattern o per cercare più cartelle, utilizzare i caratteri jolly * o **. La funzione dir tratta sempre il carattere * come un carattere jolly, anche sui sistemi di file che supportano * nei nomi di file.

Carattere jolly

Significato

*

Quando * fa parte di un nome di file o di cartella, rappresenta un numero qualsiasi di caratteri. Ad esempio, dir *.mat elenca tutti i file MAT nella cartella corrente.

Quando * si trova nel percorso e solo accanto ai separatori di file, rappresenta un singolo livello di gerarchia. Ad esempio, dir */*.mat elenca i file MAT esattamente una cartella sotto la cartella corrente.

**

** rappresenta una ricerca ricorsiva attraverso le sottocartelle. Ad esempio, dir ** elenca i file nella cartella corrente e in tutti i livelli delle sue sottocartelle. Se si specificano caratteri accanto a un carattere jolly **, devono essere separatori di file.

Sui sistemi Microsoft® Windows®, dir supporta i nomi di file brevi generati da DOS (.lnk).

Argomenti di output

comprimi tutto

Attributi del file, restituiti come array di struttura nx1, dove n è il numero di file e cartelle che corrispondono a name.

La struttura contiene questi campi.

Nome del campo

Descrizione

Classe

name

Nome del file o della cartella

char

folder

Posizione del file o della cartella

char

date

Data di modifica come timestamp

char

bytes

Dimensione del file in byte

double

isdir

1 se name è una cartella; 0 se name è un file

logical

datenum

Data di modifica come numero di data seriale

double

Per gli URL di Internet, se le informazioni sulla grandezza del file non sono disponibili, il campo bytes sarà NaN.

Limiti

  • MATLAB® non supporta gli URL di Internet che richiedono l'autenticazione.

  • MATLAB Online™ supporta gli URL di Internet associati ai file e alle cartelle di Microsoft OneDrive™, mentre la versione installata di MATLAB supporta solo i file OneDrive locali.

Suggerimenti

  • Se dir non può eseguire una query su un file, restituisce questi valori predefiniti nella struttura di output.

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

    Questo problema si verifica più frequentemente quando si eseguono delle query un collegamento simbolico che punta a una destinazione spostata, rimossa o rinominata. Per escludere queste voci non valide, è possibile convertire la struttura in una tabella e rimuovere le righe con valori vuoti.

    listing = struct2table(dir); 
    listing(isempty(listing.bytes),:) = [];
    
  • Per ottenere un elenco dei drive disponibili sulle piattaforme Microsoft Windows, utilizzare il comando DOS net use.

    dos("net use")

Funzionalità estese

espandi tutto

Cronologia versioni

Introduzione prima di R2006a

espandi tutto