使用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) = [];
更多&回答...