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

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐