一、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
此代码将列出文件夹中每个文件和文件夹的详细信息,包括文件名、大小和创建日期等