Improved file hounding

Search any file in current directory and subdirectories according to specified criteria
1.3K Downloads
Updated 2 Sep 2008

No License

% filename : filehound.m
%==========================================================================
% syntax:
% filelist = filehound(filespec)
% or: filelist = filehound
% for default search for *.m files
%
% description : recursively examines directories for presence of files
% matching the filter defined by input parameter 'filespec'
%
% parameters in : filespec = (optional) filter for filenames default = '*.m'
% filespec can be of any kind: a wild card can be used both for filename
% and for extension.
%
% Examples:
% filelist = filehound('*')
% filelist = filehound('*.*')
%
% Search for all files in current directory and subdirectories
%
% filelist = filehound('myfile')
% filelist = filehound('myfile.*')
%
% Search for all files whose name is 'myfile' independently from extension
%
% filelist = filehound('*.ext')
%
% Search for files with specific extension 'ext'
%
% Search of file is powered also by wild-card handling (i.e.: '*'). The
% only assumption is that the current program assumes that '*' is at least
% a permitted char, i.e. '*' cannot be an empty string. In this way: 'ab*c'
% cannot be equivalent to 'abc' in the search. Moreover '*abc' refers to
% the last part of a string, 'ab*c' sets constraints on first two letters
% of the string and the last letter, 'abc*', requires that the first three
% letters of the string are 'abc'. The string here is meant both filename
% and extension. Hence possible calls of filehound can be:
%
% filelist = filehound('*x.m*t')
% filelist = filehound('a*x.mt*')
% filelist = filehound('ax*.*mt')
% ...
% ...
% and all the other possbile combinations. Only one wild-card for filename
% and extension is allowed.
%
% parameters out: filelist = cell array with paths for specified files
%
% NOTE: the code is not optimized - hence suggestions for further improvement are welcomed.

Cite As

Maurizio De Pitta' (2024). Improved file hounding (https://www.mathworks.com/matlabcentral/fileexchange/20597-improved-file-hounding), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2006a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Search Path in Help Center and MATLAB Answers
Acknowledgements

Inspired by: filehound

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.0.0

Suggestion by Thierry Dalon has been followed. the file now adopts 'filesep' and it should be bug free. Length of code is remarkably shortened and global variables have been reduced accordingly.