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

时间:2016-02-02 10:28:25

标签: matlab directory delete-file

我想构建一个在运行代码之前清除指定目录的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。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

使用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;