Matlab 删除除父文件夹中的特定扩展名以外的所有子文件夹和文件

Matlab 删除除父文件夹中的特定扩展名以外的所有子文件夹和文件,matlab,Matlab,我想删除Matlab中父文件夹中的所有子文件夹。 我编写了以下代码: files=dir; for ii = 3:1:size(files,1) if isdir(files(ii).folder) == 1 rmdir (files(ii).name) end end 但是,它返回错误。第一个到文件夹的是。和。..。 如何删除其中的每个文件夹? 此外,我还编写了以下代码来删除父文件夹中除Excel文件(xlsx)之外的所有文件: 与delvar不同,标志-ex

我想删除Matlab中父文件夹中的所有子文件夹。 我编写了以下代码:

files=dir;
for ii = 3:1:size(files,1)
    if isdir(files(ii).folder) == 1
        rmdir (files(ii).name)
    end
end
但是,它返回错误。第一个到文件夹的是
。..
。 如何删除其中的每个文件夹? 此外,我还编写了以下代码来删除父文件夹中除Excel文件(xlsx)之外的所有文件:

delvar
不同,标志
-except
不起作用。。。有线索吗?
非常感谢。

对于检测和删除文件夹,我将使用返回的结构的
isdir
字段。您还可以使用不依赖于前两个选项的通用方式删除
'.
'..'

dirData = dir();

dirList = dirData([dirData.isdir]);
dirList = dirList(~ismember({dirList.name}, {'.', '..'}));
for iDir = 1:numel(dirList)
  rmdir(fullfile(dirList(iDir).folder, dirList(iDir).name));
end
对于删除文件,可以使用创建扩展名为“.xlsx”的文件的索引,然后将其删除:


注意,我在上面使用了
目录返回的结构的
文件夹
名称
字段来构建每个文件的完整路径。这使您可以选择对文件夹执行操作,而不将其作为当前目录。

谢谢!!很有魅力!!我只需要将
's'
添加到
rmdir(fullfile(dirList(iDir).folder,dirList(iDir.name))否则它将不会删除现有文件夹!!非常感谢你,伙计!
dirData = dir();

dirList = dirData([dirData.isdir]);
dirList = dirList(~ismember({dirList.name}, {'.', '..'}));
for iDir = 1:numel(dirList)
  rmdir(fullfile(dirList(iDir).folder, dirList(iDir).name));
end
fileList = dirData(~[dirData.isdir]);
deleteIndex = cellfun(@isempty, regexp({fileList.name}, '.xlsx'));
deleteList = fullfile({fileList(deleteIndex).folder}, {fileList(deleteIndex).name});
delete(deleteList{:});