可以使用函式dir,d = dir(『directory_name』)返回乙個結構陣列,包含了資料夾directory_name下的子資料夾和子檔案的一些資訊,第1個成員是檔名,第4個成員表示是否為資料夾。
要注意的是第1個陣列元素和第2個陣列元素分別是』.』和』..』,表示當前目錄和上層目錄。
clc;clear;maindir = '
d:\qcc\hdmap_statistics_opendrive\python_code\33782112\';
subdir =dir( maindir );
for i = 1
: length( subdir )
if( isequal( subdir( i ).name, '
.' )||...
isequal( subdir( i ).name, '..
')||...
subdir( i ).isdir) %如果是目錄則跳過
continue
; end
subdirpath = fullfile( maindir, subdir( i ).name, '
*.txt');
dat = dir( subdirpath ) ; %子資料夾下找字尾為dat的檔案
for j = 1
: length( dat )
datpath =fullfile( maindir, subdir( i ).name, dat( j ).name);
fid =fopen( datpath );
% 此處新增你的對檔案讀寫操作 %
fclose(fid);
endend
1. 遍歷當前資料夾下所有
做影象處理實驗,經常需要遍歷當前檔案下所有。matlab當然很早就考慮了這個問題,庫函式dir就是完成這個工作的。函式返回的是乙個存放所有目錄下檔案資訊的結構體,通過遍歷結構體就可以達到訪問所有檔案的目的了。具體實現見下面程式:
imgpath = 'e:/imagedata/'; % 影象庫路徑
imgdir = dir([imgpath '*.jpg']); % 遍歷所有jpg格式檔案
for i = 1:length(imgdir) % 遍歷結構體就可以一一處理了
img = imread([imgpath imgdir(i).name]); %讀取每張
end上面imgdir返回的是乙個結構體,包含每個name(名稱),date(日期),bytes(位元組數),isdir(是否為資料夾/目錄),datenum(修改日期,連續日期號碼)。一般我們僅需使用名稱就可以完成遍歷的工作。
2. 遍歷當前資料夾下所有子資料夾中所有
如果有做co-segmentation、多影象分類或者co-saliency等方向的人,經常會遇到需要訪問不同分類資料夾下的。這時候我們就需要先遍歷所有子資料夾,然後依次再遍歷每個子資料夾下的。程式如下:
MATLAB遍歷子資料夾及其下檔案
ref maindir subdir1 datafile1.dat datafile2.dat subdir2 datafiel3.dat datafiel4.dat subdir3 datafile5.dat datafile6.dat 主資料夾maindir下含有三個子資料夾,子資料夾分別包含兩...
C 遍歷資料夾及其子檔案(夾)
c 遍歷資料夾及其子檔案 夾 如下 int finder lpctstr pstr 一般檔案及資料夾 printf d s n i finder.getfilename bool bisdir finder.isdirectory if bisdir else end while finder.cl...
matlab遍歷資料夾
這又是個matlab程式,上次幫同學寫了個提取序列的函式,這次要能自動將資料夾中所有檔案自動的識別並建立對應的資料夾,資料夾名要和檔案中某個字段相同。tmp1 mkdir dir final system tmp1 資料夾建立完成 我試了下,用下面的函式系統就自動關機了,fun shutdown s...