Contenido principal

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

dir

Enumerar el contenido de una carpeta

Descripción

dir enumera los archivos y carpetas de la carpeta actual.

dir name enumera los archivos y carpetas que coinciden con name. Cuando name es una carpeta, dir enumera el contenido de la carpeta. Utilice los comodines * y ** para encontrar patrones. Por ejemplo, dir *.mlx enumera todos los archivos con la extensión .mlx y dir ** incluye los archivos en todas las subcarpetas.

ejemplo

listing = dir(name) devuelve atributos en un arreglo de estructura, como cuándo se modificó por última vez cada archivo o carpeta.

ejemplo

Ejemplos

contraer todo

Suponga que myfolder está en la carpeta de trabajo actual y contiene tres archivos. Enumere su contenido.

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

Vaya a myfolder y enumere los archivos con 2 en el nombre de archivo y la extensión .ext.

cd myfolder
dir *2*.ext
myfile2.ext

Enumere los archivos en la carpeta actual y en sus subcarpetas usando el comodín de búsqueda recursiva, **.

Suponga que la carpeta actual tiene este contenido.

file1.ext
folder2
     file2.ext
     folder3
         file3.ext

Enumere todos los archivos de la jerarquía.

dir **
Files Found in Current Folder:

.          ..         file1.ext  folder2  

Files Found in: folder2

.          ..         file2.ext  folder3  

Files Found in: folder2/folder3

.          ..         file3.ext  

Cuando se procesan detalles sobre varios archivos, suele ser útil convertir la estructura de salida en una tabla.

Suponga que la carpeta actual tiene este contenido.

file1.ext
folder2
     file2.ext
     folder3
         file3.ext

Solicite detalles de toda la jerarquía con el comodín **. La salida es un arreglo de estructuras. El campo date es del tipo char y el campo datenum es un número de fecha de serie.

listing = dir("**")
listing = 

  11x1 struct array with fields:

    name
    folder
    date
    bytes
    isdir
    datenum

Convierta la estructura en una tabla y reemplace date por 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 
    .
    .
    .

Para encontrar subconjuntos de los datos, indexe en la tabla. Por ejemplo, extraiga solo las carpetas y, después, excluya las carpetas . y ...

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 

Argumentos de entrada

contraer todo

Nombre de archivo o de carpeta con ruta completa o relativa, especificado como un escalar de cadena o un vector de caracteres.

Para archivos y carpetas de una ubicación remota, debe especificar la ruta completa como localizador uniforme de recursos (URL). Las URL de Internet deben incluir el tipo de protocolo "http://" o "https://". Para obtener más información, consulte Trabajar con datos remotos.

Para buscar patrones o varias carpetas, utilice los comodines * o **. La función dir trata siempre el carácter * como un comodín, incluso en sistemas de archivos que admiten * en los nombres de archivos.

Comodín

Significado

*

Cuando * forma parte del nombre de archivo o de carpeta, representa cualquier número de caracteres. Por ejemplo, dir *.mat enumera todos los archivos MAT en la carpeta actual.

Cuando * está en la ruta y solo junto a separadores de archivo, representa un único nivel de jerarquía. Por ejemplo, dir */*.mat enumera los archivos MAT que se encuentran exactamente en una carpeta por debajo de la carpeta actual.

**

** representa una búsqueda recursiva a través de subcarpetas. Por ejemplo, dir ** enumera los archivos en la carpeta actual y en todos los niveles de sus subcarpetas. Si especifica caracteres situados junto a un comodín **, deben ser separadores de archivo.

En sistemas Microsoft® Windows®, dir admite nombres de archivo cortos generados por DOS además de archivos de acceso directo (.lnk).

Argumentos de salida

contraer todo

Atributos de archivo, devueltos como arreglo de estructura de n por 1, donde n es el número de archivos y carpetas que coinciden con name.

La estructura contiene estos campos.

Nombre de campo

Descripción

Clase

name

Nombre de archivo o de carpeta

char

folder

Ubicación de archivo o de carpeta

char

date

Marca de tiempo de fecha de modificación

char

bytes

Tamaño del archivo en bytes

double

isdir

1 si name es una carpeta; 0 si name es un archivo

logical

datenum

Fecha de modificación como número de fecha de serie

double

Para URL de Internet, si la información sobre el tamaño de archivo no está disponible, el campo bytes es NaN.

Limitaciones

  • MATLAB® no admite URL de Internet que requieran autenticación.

  • MATLAB Online™ admite URL de Internet asociadas a archivos y carpetas Microsoft OneDrive™, mientras que la versión instalada de MATLAB admite solo archivos OneDrive locales.

Sugerencias

  • Si dir no puede solicitar un archivo, devuelve estos valores predeterminados en la estructura de salida.

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

    Este problema ocurre de manera más común cuando consulta un enlace simbólico que señala a un objetivo movido, eliminado o con el nombre modificado. Para excluir estas entradas no válidas, puede convertir la estructura en tabla y eliminar las filas con valores vacíos.

    listing = struct2table(dir); 
    listing(isempty(listing.bytes),:) = [];
    
  • Para ver una lista de todos los discos disponibles en las plataformas Microsoft Windows, utilice el comando net use de DOS.

    dos("net use")

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido antes de R2006a

expandir todo