Get from Ico-github-logo

Highlights from
subdir: a recursive file search

  • subdir(varargin)
    SUBDIR Performs a recursive file search
  • View all files
4.9 | 10 ratings Rate this file 101 Downloads (last 30 days) File Size: 141 KB File ID: #15859 Version: 1.1

subdir: a recursive file search


Kelly Kearney (view profile)


07 Aug 2007 (Updated )

Performs a recursive file search using same input and output format as dir function

| Watch this File

File Information

This function performs a recursive file search. Its advantage over other FEX programs offering the same thing is that it uses the same input and output format as Matlab's dir function, and can therefore be used interchangeably.

>> a = subdir(fullfile(matlabroot, 'toolbox', 'matlab', '*.mat'))

a =

66x1 struct array with fields:

>> a(1)

ans =

       name: '/Applications/MATLAB74/toolbox/matlab/audiovideo/chirp.mat'
       date: '14-Mar-2004 10:31:48'
      bytes: 25276
      isdir: 0
    datenum: 7.3202e+05

MATLAB release MATLAB 7.1.0 (R14SP3)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (12)
08 Sep 2015 Sebastian Endrikat  
15 Apr 2015 bilalY

bilalY (view profile)

23 Oct 2014 kuni

kuni (view profile)

20 Oct 2014 Paul

Paul (view profile)

Great! Does as it claims.

27 May 2014 Sanjay

Sanjay (view profile)

Works really well. Nice and convenient.

01 Aug 2013 Brendan

Just what we were looking for. We wanted something to seamlessly replace a 'dir' command from someone else's code, and it worked just as advertised. Saved my colleague hours of work. After execution, we had to trim the fields to include only the relative path to the current directory, rather than the full path.

19 Jul 2013 Rakshit Kothari

Amazing!! exactly what I was looking for! Thank you very much :D

24 Jul 2012 Michael

Incredibly useful tool! I love how simple it is. Thanks!

24 Jul 2011 Brad Stiritz

Perfect! Just what I needed. Very appreciated, thank you :)

28 Sep 2010 Kelly Kearney

Kelly Kearney (view profile)


I think your comment must apply to a different submission; the lines you mention are not part of the file offered here. This version should be fully platform-independent (and was developed on a Mac, so would be Mac/Unix-biased if anything).

Comment only
23 Jul 2010 derek

derek (view profile)

There is one small issue on this file that is easily fixed. This script will only work on windows, because on line 25:
d=[d; {[rootpath '\' dnew(i).name]}];
and line 46:
d=[d; {[dtemp '\' dnew(i).name]}];

The backslash is the file separator only for window, for unix/linux this will cause problems because the file separator is '/'. This problem can easily be fixed by using filesep instead of '\'. i.e.:
d=[d; {[rootpath filesep dnew(i).name]}];
d=[d; {[dtemp filesep dnew(i).name]}];

Comment only
03 Sep 2009 Raj Sodhi

Raj Sodhi (view profile)

It works great!.

>> a = subdir([pwd '\*level1*.csv'])

a =

19x1 struct array with fields:

My only problem when I started using it was that it really does require an extension.

>> a = subdir([pwd '\*level1*'])
??? Undefined function or variable "filter".

Error in ==> subdir at 90
NewFiles = dir(fullfile(pathfolders{ifolder}, filter));


I started troubleshooting and realized that the var filter never got defined on line 71 or 74.

Thanks for your file! Really elegant code.



06 Oct 2015 1.1

Linked to github repository

Contact us