?? findfiles.m
字號:
function fileCell = findfiles(varargin)
%FINDFILES Recursively search directory for files.
% FINDFILES returns a cell array with the file names of all files
% in the current directory and all subdirectories.
%
% FINDFILES(DIRNAME) returns the file names of all files in the given
% directory and its subdirectories.
%
% FINDFILES(DIRNAME, FILESPEC) only returns the file names matching the
% given file specification (like '*.c' or '*.m').
%
% FINDFILES(DIRNAME, FILESPEC, 'nonrecursive') searches only in the top
% directory.
%
% FINDFILES(DIRNAME, FILESPEC, EXLUDEDIR1, ...) excludes the additional
% directories from the search.
%
% Example:
% fileList = findfiles('.', '*.m');
%
% Markus Buehren
% Last modified 21.04.2008
%
% See also DIR.
if nargin == 0
searchPath = '.';
fileSpec = '*';
elseif nargin == 1
searchPath = varargin{1};
fileSpec = '*';
else
searchPath = varargin{1};
fileSpec = varargin{2};
end
excludeCell = {};
searchrecursive = true;
for n=3:nargin
if isequal(varargin{n}, 'nonrecursive')
searchrecursive = false;
elseif iscell(varargin{n})
excludeCell = [excludeCell, varargin{n}]; %#ok
elseif ischar(varargin{n}) && isdir(varargin{n})
excludeCell(n+1) = varargin(n);
else
error('Directory not existing or unknown command: %s', varargin{n});
end
end
searchPath = chompsep(searchPath);
if strcmp(searchPath, '.')
searchPath = '';
elseif ~exist(searchPath, 'dir')
error('Directory %s not existing.', searchPath);
end
% initialize cell
fileCell = {};
% search for files in current directory
dirStruct = dir(concatpath(searchPath, fileSpec));
for n=1:length(dirStruct)
if ~dirStruct(n).isdir
fileCell(end+1) = {concatpath(searchPath, dirStruct(n).name)}; %#ok
end
end
% search in subdirectories
if searchrecursive
excludeCell = [excludeCell, {'.', '..', '.svn'}];
if isempty(searchPath)
dirStruct = dir('.');
else
dirStruct = dir(searchPath);
end
for n=1:length(dirStruct)
if dirStruct(n).isdir
name = dirStruct(n).name;
if ~any(strcmp(name, excludeCell))
fileCell = [fileCell, findfiles(concatpath(searchPath, name), fileSpec)]; %#ok
end
end
end
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -