MATLAB 刪除指定文件夾內的文件夾及多個子文件夾

初入實驗室,本科使用過一點matlab,遺忘的很快。索性用博客記錄使用期間碰到的一些問題及解決方案。

1. 問題來源

如何使用MATLAB刪除指定文件夾內的文件夾及多個子文件夾,這個問題來源於題主正在做的一個實驗室項目,其中功能子函數要反覆使用同一個文件夾,並且刪除之前的內容。要刪除的文件內容包括有多級子文件夾的文件夾、txt以及CST建模所生成的模型.cst文件。

2. 代碼

2.1. MATLAB Documentation - MathWorks 中國

地址:
MATLAB Documentation - MathWorks 中國

遇到MATLAB的問題首先打開MATLAB Documentation,查找文件操作部分內容,如下:
在這裏插入圖片描述

2.1.1. delete - 刪除文件或對象

delete *.mat	%刪除當前文件夾中帶有 .mat 擴展名的所有文件。

2.1.2. rmdir- 刪除文件夾

  • 刪除非空文件夾
[status, message, messageid] = rmdir('myfiles')			%刪除空文件夾
[status, message, messageid] = rmdir('myfiles', 's')	%刪除非空文件夾
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
status - 文件夾刪除狀態
0 | 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
msg - 錯誤消息
錯誤消息,指定爲字符向量。如果發生錯誤或警告,msg 將包含錯誤或警告的消息文本。否則,msg 爲空,即 ''%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2.2. 代碼塊

function deletebefore

cd('E:\TEST')		%進入所在文件夾

delete *.txt        %刪除文件夾內所有.txt
delete *.cst        %刪除文件夾內所有.cst

if exist('cable','dir') == 7    %檢測是否存在名爲'cable'的文件夾及子文件夾
files = dir('E:\TEST');         %遍歷
%delete dir
filenum = length(files);
    for i = 1:filenum
        if(files(i).isdir && ~strcmp(files(i).name,'.') && ~strcmp(files(i).name,'..'))
            rmdir(files(i).name,'s')        
        end
    end   
end

end
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章