我想构建一个在运行代码之前清除指定目录的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。
我该怎么办?
答案 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;