MATLAB을 사용하여 디렉토리에서 "유효한"파일의 배열을 추출해야합니다. 유효하면 디렉토리가 아니어야하며 숨겨진 파일이 아니어야합니다. dir
이 반환하는 구조에는 isDir이라는 필드가 있으므로 디렉토리 필터링은 쉽습니다. 그러나 나는 또한 MacOSX 또는 Windows가 디렉토리에 넣을 수있는 숨겨진 파일을 필터링해야합니다. 가장 쉬운 방법은 플랫폼 간입니다. 숨겨진 파일의 작동 방식을 이해하지 못합니다.MATLAB의 dir 함수를 호출 한 후 숨겨진 파일을 필터링하는 방법
4
A
답변
5
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) = [];
4
모든 숨김 파일이 '.'로 시작한다고 가정합니다.
s = dir(target); % 'target' is the investigated directory
%remove hidden files
s = s(arrayfun(@(x) ~strcmp(x.name(1),'.'),s))
Mac OS X (및 다른 Unix 시스템)에서 Matlab 전문가는 아니지만 숨겨진 파일이 작동하는 방식입니다. 이름은 마침표 ('.')로 시작됩니다. Windows에서는 "숨김"속성이 설정됩니다. Windows 숨김 파일은 FAT 또는 NTFS와 같은 Windows 파일 시스템에서만 숨겨집니다. –