您的位置:

Matlab dir函数详解

一、dir概述

Matlab中的dir函数是一个非常有用的函数。它可以列出指定文件夹中的所有文件和子文件夹。在大多数情况下,我们不知道文件的名字,但想要知道文件夹中存储了什么文件,并且想要访问这些文件。Dir函数就是要适应上述需求而设计的

二、dir函数语法

dir函数的基本语法如下:

dir folderName

其中,folderName是需要查看的文件夹的名称或表示文件夹的路径的字符串

三、dir函数返回值

Dir函数返回一个结构数组,其中包含文件夹中每个文件和子文件夹的信息,包括文件名、日期、文件大小和属性等

通常,dir函数的返回值的第一个元素是当前文件夹(.)的信息,第二个元素是上级文件夹(..)的信息。其余的元素包含文件夹中的每个文件夹和子文件夹的信息

结构体包含以下字段:

  • name:文件或文件夹的名称
  • date:文件的修改日期或文件夹的创建日期
  • bytes:文件大小(以字节为单位);对于文件夹,此值为0
  • isdir:文件是否为文件夹的标志;1表示文件夹,0表示文件
  • datenum:上次修改时间

四、dir函数的应用

1、统计文件夹中的文件数目

统计文件夹中文件的数量可以通过下面的代码实现

 folderName = 'D:\data\';  %文件夹名称
 fld = dir(folderName);
 count = 0;
for i = 1:length(fld)
    if ~fld(i).isdir
        count = count+1;
    end
end
fprintf('在%s文件夹下有%d个文件。\n',folderName,count);

2、获取文件夹中所有文件的名称

获取文件夹中所有文件的名称可以通过下面的代码实现

 folderName = 'D:\data\'; %文件夹名称
fld = dir(strcat(folderName,'*'));%获取文件夹中的所有文件
for i = 1:length(fld)
    if ~fld(i).isdir %如果不是文件夹
       fname=fld(i).name;%获取文件名
       fprintf(['文件名:',fname,'\n']);
    end
end

3、获取文件夹中指定类型的文件

获取文件夹中指定类型的文件可以通过下面的代码实现。例如,我们要获取文件夹中的所有jpg文件,则可以使用如下代码。

 folderName = 'D:\data\'; %文件夹名称
exp = '*.jpg';% 满足此后缀的文件
fld = dir(fullfile(folderName,exp));%获取文件夹中的所有jpg文件
for i = 1:length(fld)
    if ~fld(i).isdir %如果不是文件夹
       fname=fld(i).name;%获取文件名
       fprintf(['文件名:',fname,'\n']);
    end
end

4、查看指定文件/文件夹的详细信息

可以通过dir命令查看指定文件/文件夹的详细信息。例如,我要查看文件夹'D:\data\'的详细信息,我们可以使用如下代码。

fld = dir('D:\data\');
 for i = 1:length(fld)
     fprintf([fld(i).name,'  %d\t',[num2str(fld(i).bytes/(1024^2),'%0.2f'),' MB'],'\t%s\n'],fld(i).datenum,datestr(fld(i).datenum));
 end

此代码将列出文件夹中每个文件和文件夹的详细信息,包括文件名、大小和创建日期等