初入實驗室,本科使用過一點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