一、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
此代碼將列出文件夾中每個文件和文件夾的詳細信息,包括文件名、大小和創建日期等