初入实验室,本科使用过一点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