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

用户名

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

files=dir;
for ii = 3:1:size(files,1)
    if isdir(files(ii).folder) == 1
        rmdir (files(ii).name)
    end
end

但是,它返回错误。文件夹的第一个是'.''..'如何删除其中的每个文件夹?另外,我编写了以下代码,以从父文件夹中删除除Excel文件(xlsx)之外的所有文件:

delete -except *.xlsx

不像delvar,该标志-except不起作用...有任何线索吗?非常感谢。

gnovice

为了检测和删除文件夹,我将使用所isdir返回的结构字段dir您还可以删除'.''..',而通常使用ismember并不依赖于它们是前两个:

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

对于删除文件,您可以用来regexp为没有扩展名.xlsx的文件创建索引,然后删除

fileList = dirData(~[dirData.isdir]);
deleteIndex = cellfun(@isempty, regexp({fileList.name}, '.xlsx'));
deleteList = fullfile({fileList(deleteIndex).folder}, {fileList(deleteIndex).name});
delete(deleteList{:});

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java-使用DirectoryStream计算文件夹中的所有文件扩展名

如何删除文件夹中所有具有特定扩展名的文件?

在cmd中如何列出包含具有特定扩展名的文件的文件夹?

删除所有没有特定扩展名的文件夹和子目录

apache2重写子文件夹和文件扩展名

重写URL:从URL删除子文件夹和文件扩展名

在具有特定扩展名的所有文件夹和子文件夹中运行命令

如何遍历文件夹中的文件以移动具有特定扩展名的每个文件

Bash:复制根/当前文件夹中具有相同扩展名的所有文件,但文件名包含某些字符串的文件除外

如何在ckfinder中显示所有文件夹,子文件夹和文件

查找文件夹中不是特定类型/扩展名的所有文件?

查找和删除文件夹及其子文件夹中所有不带扩展名的文件

Windows 7-递归删除具有特定扩展名的所有文件+空文件夹

如何删除大树中特定命名文件夹中具有特定扩展名的所有文件?

删除文件夹中的所有文件和文件夹,以结尾的文件和文件夹为准

删除文件夹名称HTACCESS和文件扩展名?

删除文件夹中的所有文件,列表中的文件名除外

将子文件夹中的所有文件移动到父文件夹

如何删除特定文件夹中具有特定扩展名的所有文件?

批量打开Windows子文件夹中具有相同扩展名的文件

将子文件夹中的所有文件移动到父文件夹

删除子文件夹和文件而不删除父文件夹和子文件夹?

如何从Andorid中的文件夹中删除具有特定扩展名的文件

列出所有仅扩展名的文件和文件夹

从命令行对文件夹和具有特定扩展名(.mp4)的子文件夹中的文件进行计数

在AutoIT中更改特定文件夹扩展名中的所有文件

C# - 如何检查文件夹中的所有文件是否具有特定扩展名

使用 PowerShell 重命名给定目录和子文件夹中没有扩展名的所有文件

Php:将扩展名附加到文件夹中没有扩展名的所有文件