Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,008
声望力: 66 ![]() |
![]()
使用MATLAB,我需要从目录中提取“有效”文件的数组。有效的意思是,它们一定不能是目录,也不能是隐藏文件。过滤目录非常容易,因为dir返回的结构具有一个称为isDir的字段。但是,我还需要过滤掉MacOSX 或 Windows可能放在目录中的隐藏文件。最简单的跨平台方法是什么?我不太了解隐藏文件的工作方式。
回答: 您可以结合使用DIR和FILEATTRIB来检查隐藏文件。 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) = []; 更多&回答... |
![]() |
![]() |