Matlab實(shí)現(xiàn)獲取文件夾下所有指定后綴的文件
1. 要求
獲取指定文件夾下(包含子文件夾),所有指定后綴(如txt)的文件路徑(即文件所在目錄+文件名),返回一個(gè)字符串?dāng)?shù)組。
2. 代碼
獲取C:/Users/Administrator/Desktop文件夾下(包含子文件夾)的所有.m文件
clear
dirOutput = dir('C:/Users/Administrator/Desktop/**/*.m');
folder = string({dirOutput.folder}');
file = string({dirOutput.name}');
filepath = strcat(folder, '\', file);
獲取C:/Users/Administrator/Desktop文件夾下(不包含子文件夾)的所有.m文件
clear
dirOutput = dir('C:/Users/Administrator/Desktop/*.m');
folder = string({dirOutput.folder}');
file = string({dirOutput.name}');
filepath = strcat(folder, '\', file);
封裝成函數(shù)。調(diào)用時(shí)若輸入兩個(gè)參數(shù),則默認(rèn)搜索子文件夾
function filepath = getFilesPath(baseDir, ext, findSubfile)
if nargin == 2 % 判斷輸入的參數(shù)是否為2
findSubfile = true;
end
if findSubfile
dirOutput = dir([baseDir '/**/*.' ext]);
else
dirOutput = dir([baseDir '/*.' ext]);
end
folder = string({dirOutput.folder}');
file = string({dirOutput.name}');
filepath = strcat(folder, '\', file);
end
調(diào)用方法
getFilesPath('C:/Users/Administrator/Desktop', 'm')
結(jié)果展示

3. 參考
未仔細(xì)學(xué)習(xí)dir()函數(shù)之前
本文介紹一種通過MATLAB獲取當(dāng)前文件夾下所有文件名稱的方法,包含子文件夾內(nèi)的文件名稱,請(qǐng)參考。
主要用到的函數(shù)包括uigetdir()、dir()。
AidDir = uigetdir(); % 通過交互的方式選擇一個(gè)文件夾
if AidDir == 0 % 用戶取消選擇
fprintf('Please Select a New Folder!\n');
else
ParentFolder = dir(AidDir); % 獲取當(dāng)前文件夾下的信息
AllFile = struct; % 建立空結(jié)構(gòu)體
AllFile = GetAllFile(ParentFolder,AllFile);
if isempty(fieldnames(AllFile))
fprintf('There are no files in this folder!\n');
else % 當(dāng)前文件夾下有文件,反饋文件數(shù)量
fprintf('Number of Files: %i \n',size(AllFile,2));
end
end
function [AllFileStruct] = GetAllFile(ParentFolder,AllFile)
AllFileStruct = AllFile;
if isempty(fieldnames(AllFile))
FileNum = 0; % 用于統(tǒng)計(jì)文件數(shù)量
else
FileNum = size(AllFileStruct,2);
end
try
%從第3個(gè)開始是文件,如果報(bào)錯(cuò),則表明當(dāng)前文件夾沒有文件,運(yùn)行catch
for i = 3:length(ParentFolder)
if ParentFolder(i).isdir == 1 % 當(dāng)前是文件夾
SubFolder = [ParentFolder(i).folder,'\',ParentFolder(i).name];
Temp = dir(SubFolder);
AllFileStruct = GetAllFile(Temp,AllFileStruct); % 函數(shù)遞歸
FileNum = size(AllFileStruct,2);
else
FileNum = FileNum + 1;
%通過結(jié)構(gòu)體可以存儲(chǔ)多種數(shù)據(jù),本文僅以文件名稱為例
AllFileStruct(FileNum).name = ParentFolder(i).name;
end
end
catch
end
end
最后通過查看AllFile變量即可獲取當(dāng)前文件夾下所有文件名稱。
仔細(xì)學(xué)習(xí)dir()函數(shù)之后
先放代碼:
AidDir = uigetdir(); % 通過交互的方式選擇一個(gè)文件夾
if AidDir == 0 % 用戶取消選擇
fprintf('Please Select a New Folder!\n');
else
cd(AidDir)
RawFile = dir('**/*.*'); %主要是這個(gè)結(jié)構(gòu),可以提取所有文件
AllFile = RawFile([RawFile.isdir]==0);
if isempty(fieldnames(AllFile))
fprintf('There are no files in this folder!\n');
else % 當(dāng)前文件夾下有文件,反饋文件數(shù)量
fprintf('Number of Files: %i \n',size(AllFile,1));
end
end
沒了。。。。不需要畫蛇添足。。。。
dir()函數(shù)以n×1結(jié)構(gòu)體數(shù)組形式返回,其中n是dir()函數(shù)返回的文件和文件夾的數(shù)量,下表中顯示了結(jié)構(gòu)體中的字段。
| 字段名稱 | 說明 | 類 |
|---|---|---|
| name | 文件或文件夾名稱 | char |
| folder | 文件或文件夾的位置 | char |
| date | 修改日期時(shí)間戳 | char |
| bytes | 文件大?。ㄒ宰止?jié)為單位) | double |
| isdir | 如果名稱為文件夾,則為1;如果名稱為文件,則為0 | logical |
| datenum | 修改日期是一個(gè)日期序列值 | double |
提取指定擴(kuò)展名的文件dir('**/*.m')。
到此這篇關(guān)于Matlab實(shí)現(xiàn)獲取文件夾下所有指定后綴的文件的文章就介紹到這了,更多相關(guān)Matlab獲取指定后綴文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言實(shí)現(xiàn)餐廳點(diǎn)餐系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)餐廳點(diǎn)餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
Qt MQTT開發(fā)環(huán)境搭建的實(shí)現(xiàn)示例
本文主要介紹了Qt MQTT開發(fā)環(huán)境搭建的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
Qt編寫地圖實(shí)現(xiàn)省市區(qū)域圖的示例代碼
本文主要介紹了Qt編寫地圖實(shí)現(xiàn)省市區(qū)域圖的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
C語言實(shí)現(xiàn)去除字符串中空格的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)硪黄狢語言實(shí)現(xiàn)去除字符串中空格的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-用棧實(shí)現(xiàn)表達(dá)式求值的方法詳解
本篇文章是對(duì)在c語言中用棧實(shí)現(xiàn)表達(dá)式求值的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C語言實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01

