Main Content

dir

List folder contents

Description

dir lists files and folders in the current folder.

example

dir name lists files and folders that match name. When name is a folder, dir lists the contents of the folder. Specify name using absolute or relative path names. The name argument can include the * wildcard in the file name, and both the * and the ** wildcard in the path name. Characters next to a ** wildcard must be file separators.

example

listing = dir(name) returns attributes about name.

Examples

View Contents of Folder

List the contents of a folder.

Create a folder, myfolder, that contains the files myfile1.m, myfile2.m, and myfile3.m.

mkdir myfolder
movefile myfile1.m myfolder
movefile myfile2.m myfolder
movefile myfile3.m myfolder

List the files in myfolder.

dir myfolder
.          ..         myfile1.m  myfile2.m  myfile3.m  

Find Files Matching Specified Name

List all files with a .m extension that contain the term my.

Create a folder, myfolder, that contains the files myfile1.m, myfile2.m, and myfile3.txt.

mkdir myfolder
movefile myfile1.m myfolder
movefile myfile2.m myfolder
movefile myfile3.txt myfolder

List the matching files in myfolder.

cd myfolder
dir *my*.m
myfile1.m  myfile2.m  

Find Files in Subfolders

List all files in the current folder and all of the subfolders of the current folder.

Create a folder, myfolder1, that contains these files and folders:

myfile1.m
myfolder2
     myfile2.m
     myfolder3
         myfile3.m
mkdir myfolder1
mkdir myfolder1/myfolder2
mkdir myfolder1/myfolder2/myfolder3

movefile myfile1.m myfolder1
movefile myfile2.m myfolder1/myfolder2
movefile myfile3.m myfolder1/myfolder2/myfolder3

List all files with a .m extension in myfolder1 and all of the subfolders of myfolder1.

cd myfolder1
dir **/*.m
Files Found in Current Folder:

myfile1.m  

Files Found in: myfolder2

myfile2.m  

Files Found in: myfolder2\myfolder3

myfile3.m  

Find Information in the Return Structure

Return the folder listing of myfolder to the variable MyFolderInfo.

Create a folder, myfolder, that contains the files myfile1.m, myfile2.m, and myfile3.m.

mkdir myfolder
movefile myfile1.m myfolder
movefile myfile2.m myfolder
movefile myfile3.m myfolder

Get a list of the files in myfolder. MATLAB® returns the information in a structure array.

MyFolderInfo = dir('myfolder')
MyFolderInfo=5×1 struct array with fields:
    name
    folder
    date
    bytes
    isdir
    datenum

Index into the structure to access a particular item.

MyFolderInfo(3).name
ans = 
'myfile1.m'

Find Date File Last Modified

Get the date and time a file was last modified.

First, query the datenum field of the structure that dir returns. The value of the datenum field is a serial date number and does not vary with locale.

MyFileInfo = dir('myfile1.m');
FileDate = MyFileInfo.datenum
FileDate = 7.3647e+05

As of R2022b, serial date numbers are not recommended. Convert the serial date number to a datetime value by using the datetime function.

FileDatetime = datetime(FileDate,ConvertFrom="datenum")
FileDatetime = datetime
   24-May-2016 11:24:31

Input Arguments

collapse all

File or folder name, specified as a character vector or string scalar. If name is a string, enclose it in parentheses. For example, dir("FolderName").

To list files and folders at a remote location, name must contain a full path specified as a uniform resource locator (URL). For more information, see Work with Remote Data.

To search for multiple files, use wildcards in the file name. For example, dir *.txt lists all files with a txt extension in the current folder. To search through folders and subfolders on the path recursively, use wildcards in the path name. For example, dir */*.txt lists all files with a txt extension exactly one folder under the current folder, and dir **/*.txt lists all files with a txt extension zero or more folders under the current folder. Characters next to a ** wildcard must be file separators.

Note

MATLAB® always treats the * character as a wildcard, even on file systems that support * in file names.

The MATLAB dir function is consistent with the Microsoft® Windows® operating system dir command in that both support short file names generated by DOS.

Output Arguments

collapse all

File attributes, returned as a n-by-1 structure array, where n is the number of files and folders returned by the dir command.

This table shows the fields in the structure.

Field Name

Description

Class

name

File or folder name

char

folder

Location of file or folder

char

date

Modification date timestamp

char

bytes

Size of the file in bytes

double

isdir

1 if name is a folder; 0 if name is a file

logical

datenum

Modification date as serial date number.

double

Tips

  • To exclude invalid entries returned by the dir command, use the cellfun function.

    MyFolderInfo = dir; 
    MyFolderInfo = MyFolderInfo(~cellfun('isempty', {MyFolderInfo.date})); 

    Invalid entries occur when you run dir with an output argument and the results include a nonexistent file or a file that dir cannot query for some other reason. In this case, dir returns the following default values.

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

    Invalid entries most commonly occur on UNIX® platforms when dir queries a symbolic link pointing to a nonexistent target. A nonexistent target is a target that is moved, removed, or renamed.

  • To obtain a list of available drives on Microsoft Windows platforms, use the DOS net use command at the command line.

    dos('net use')

    Or type

    [s,r] = dos('net use')

    MATLAB returns the results to the character array r.

Extended Capabilities

Version History

Introduced before R2006a

expand all