MATLAB:清除 运行 代码前预先指定的文件以外的目录

MATLAB: Clear directory except pre-specified files before running code

我想构建一个 Matlab 代码,在我 运行 我的代码之前清除指定的目录。但是,在此目录中,有 4 个文件需要保留在那里才能正常运行。

目前,要从我使用的目录中删除文件:

    AVLDir = External\AVL\
    delete([AVLDir obj.Data.FileId '*.dat']);
    delete([AVLDir obj.Data.FileId '*.avl']);
    delete([AVLDir obj.Data.FileId '*.key']);

在这里,我需要一个文件名和扩展名,以便能够找到文件并将其删除。我想要的是删除文件夹 External\AVL\ 中的所有内容,但以下文件除外:

avl.exe
avl_linux.txt
avl_mac (type of file is 'File') Don't exactly know what this is
avl_osx.txt

我想这样做是为了删除文件夹中的所有内容,因为我在外部使用 avl.exe,这可能会弄乱我的代码。

我该怎么办?

使用 dir 获取目录内容,然后将每个非文件夹项目的名称与您的排除列表进行比较,如果没有匹配则将其删除。

for d = dir('External\AVL').';
  if(~d.isdir && ~any(strcmp(d.name,{'avl.exe','avl_linux.txt','avl_mac','avl_osx.txt'})));
    delete(fullfile('External\AVL', d.name));
  end;
end;