登录论坛

查看完整版本 : 调用MATLAB的dir函数后如何过滤隐藏文件


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



回答:

您可以结合使用DIR (http://www.mathworks.com/help/techdoc/ref/dir.html)和FILEATTRIB (http://www.mathworks.com/help/techdoc/ref/fileattrib.html)来检查隐藏文件。

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) = [];

更多&回答... (https://stackoverflow.com/questions/5234341)