JnB*_*ymn 4 filesystems matlab hidden-files
使用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) = [];
Run Code Online (Sandbox Code Playgroud)
小智 5
假设所有隐藏文件均以“。”开头。这是删除它们的快捷方式:
s = dir(target); % 'target' is the investigated directory
%remove hidden files
s = s(arrayfun(@(x) ~strcmp(x.name(1),'.'),s))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5459 次 |
| 最近记录: |