Main Content

dir

列出文件夹内容

说明

dir 列出当前文件夹中的文件和文件夹。

示例

dir name 列出与 name 匹配的文件和文件夹。如果 name 为文件夹,dir 列出该文件夹的内容。使用绝对或相对路径名称指定 namename 参量的文件名可以包含 * 通配符,路径名称可以包含 *** 通配符。与 ** 通配符相邻的字符必须为文件分隔符。

示例

listing = dir(name) 返回 name 的属性。

示例

查看文件夹的内容

列出文件夹的内容。

创建文件夹 myfolder,其中包含文件 myfile1.mmyfile2.mmyfile3.m

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

列出 myfolder 中的文件。

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

查找与指定名称匹配的文件

列出包含词语 my 且扩展名为 .m 的所有文件。

创建文件夹 myfolder,其中包含文件 myfile1.mmyfile2.mmyfile3.txt

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

列出 myfolder 中符合条件的文件。

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

在子文件夹中查找文件

列出当前文件夹中和当前文件夹的所有子文件夹中的所有文件。

创建文件夹 myfolder1,其中包含以下文件和文件夹:

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

列出 myfolder1 中和 myfolder1 的子文件夹中扩展名为 .m 的所有文件。

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

myfile1.m  

Files Found in: myfolder2

myfile2.m  

Files Found in: myfolder2\myfolder3

myfile3.m  

在返回结构体中查找信息

myfolder 的文件夹列表返回给变量 MyFolderInfo

创建文件夹 myfolder,其中包含文件 myfile1.mmyfile2.mmyfile3.m

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

获取 myfolder 中文件的列表。MATLAB® 以结构体数组形式返回信息。

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

创建结构体索引以访问特定项目。

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

查找文件的上次修改日期

获取文件上次修改的日期和时间。

首先,查询 dir 返回的结构体的 datenum 字段。datenum 字段的值是日期序列值,不随区域设置而变化。

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

从 R2022b 开始,不推荐使用日期序列值。使用 datetime 函数将日期序列值转换为 datetime 值。

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

输入参数

全部折叠

文件或文件夹名称,指定为字符向量或字符串标量。如果 name 是字符串,请将其括在括号中。例如,dir("FolderName")

要列出远程位置的文件和文件夹,name 必须包含指定为统一资源定位器 (URL) 的完整路径。有关详细信息,请参阅处理远程数据

要搜索多个文件,请在文件名中使用通配符。例如,dir *.txt 将列出当前文件夹中扩展名为 txt 的所有文件。要以递归方式搜索路径上的文件夹和子文件夹,请在路径名称中使用通配符。例如,dir */*.txt 列出正好是当前文件夹的下一级文件夹中扩展名为 txt 的所有文件,dir **/*.txt 列出当前文件夹下或其下多个文件夹中扩展名为 txt 的所有文件。与 ** 通配符相邻的字符必须为文件分隔符。

注意

MATLAB® 始终将 * 字符视为通配符,即使在支持文件名中包含 * 的文件系统上也是如此。

MATLAB dir 函数与 Microsoft® Windows® 操作系统的 dir 命令功能相同,两者都支持 DOS 生成的短文件名。

输出参量

全部折叠

文件属性,以 n×1 结构体数组形式返回,其中 ndir 命令返回的文件和文件夹的数量。

下表显示了结构体中的字段。

字段名称

描述

name

文件或文件夹名称

char

folder

文件或文件夹的位置

char

date

修改日期时间戳

char

bytes

文件大小(以字节为单位)

double

isdir

如果名称为文件夹,则为 1;如果名称为文件,则为 0

logical

datenum

修改日期是一个日期序列值。

double

提示

  • 要排除 dir 命令返回的无效条目,请使用 cellfun 函数。

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

    若运行带有输出参量的 dir 且结果包括不存在的文件或 dir 因为某种其他原因无法查询的文件,会出现无效条目。在这种情况下,dir 返回以下默认值。

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

    dir 查询的符号链接指向不存在的目标时,UNIX® 平台上常出现无效条目。不存在的目标是指被移动、被删除或被重命名的目标。

  • 要获取 Microsoft Windows 平台上可用驱动器的列表,请在命令行中使用 DOS net use 命令。

    dos('net use')

    或者键入

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

    MATLAB 返回字符数组 r 的结果。

扩展功能

版本历史记录

在 R2006a 之前推出

全部展开