查看单个帖子
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,008
声望力: 66
poster 正向着好的方向发展
帖子 调用MATLAB的dir函数后如何过滤隐藏文件

使用MATLAB,我需要从目录中提取“有效”文件的数组。有效的意思是,它们一定不能是目录,也不能是隐藏文件。过滤目录非常容易,因为dir返回的结构具有一个称为isDir的字段。但是,我还需要过滤掉MacOSX Windows可能放在目录中的隐藏文件。最简单的跨平台方法是什么?我不太了解隐藏文件的工作方式。



回答:

您可以结合使用DIRFILEATTRIB来检查隐藏文件。

folder = uigetdir('please choose directory'); fileList = dir(folder); %# remove all folders isBadFile = cat(1,fileList.isdir); %# all directories are bad %# loop to identify hidden files for iFile = find(~isBadFile)' %'# loop only non-dirs %# on OSX, hidden files start with a dot isBadFile(iFile) = strcmp(fileList(iFile).name(1),'.'); if ~isBadFile(iFile) && ispc %# check for hidden Windows files - only works on Windows [~,stats] = fileattrib(fullfile(folder,fileList(iFile).name)); if stats.hidden isBadFile(iFile) = true; end end end %# remove bad files fileList(isBadFile) = [];

更多&回答...
poster 当前离线   回复时引用此帖