View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
Recursive directory listing

4.9 | 23 ratings Rate this file 82 Downloads (last 30 days) File Size: 2.61 KB File ID: #19550 Version: 1.0

Recursive directory listing


Gus Brown (view profile)


11 Apr 2008 (Updated )

Directory listing with a difference, supports directory wildcards.

| Watch this File

File Information

Lists the files in a directory and its sub directories.

Ok, so there are many functions like this one already on the file exchange, but this one uses a slightly different wildcard naming system that some people may find useful.

For example,

rdir('C:\Program Files\Windows*\**\*.dll');

will find all dll files in the directories starting with 'C:\Program Files\Windows' and all the dll files in the sub directories below them.

One can filter the list based on the file size and date.

Using the function to find files modified sometime today in the windows directory


Include the sub directories.


Or you could use it to find all the no zero-byte processed csv data files for the data recorded in April 2008.


this finds files like...


This file inspired Recursive Directory Listing Enhanced Rdir, Recursive Directory Walk With Exec (Unix Type), Rdir Dos, Find Repeated M File Names, and Find 'Orphaned' M Files.

MATLAB release MATLAB 7.4 (R2007a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (28)
21 Dec 2016 Dave Ober

My mistake. Just needed tow **

16 Dec 2016 Dave Ober

If I have a file
And I run
cFiles = rdir('C:\Sub1\*\*\*\TxtSet*.txt')
I had hoped it would search all the sub-directories where there are stars (if they exist) in search of the file. However, it does not and requires that I know the level that the file exists. (At least that is the only way I can get it to work). However, I put my own loop around rdir and that works.

13 Mar 2016 Xiaochuan Pian


04 Nov 2015 Afshin Salehi

26 Mar 2015 Damir

Damir (view profile)

No comment, it just works great.

03 Feb 2015 ACLNM

ACLNM (view profile)

20 Dec 2014 Liron

Liron (view profile)

27 Jun 2014 Farah Yasmina

Works great in Linux, exactly what I was looking for. Thank you!

21 May 2014 Sih-Ying

One of the most useful file in daily work.

22 Nov 2013 F A

F A (view profile)

Works perfectly in windows and linux

04 Oct 2013 Nishant Verma

Works great. Thanks !

09 May 2012 Thomas Vanaret

@ Matthias :
This is a bug of RDIR (in "if isempty(wildpath)" statement, all directories are removed, whereas it should not)

Enhanced version of RDIR I've submitted fix this bug.

See "Recursive directory listing - Enhanced RDIR" / File ID: #32226 (link above in "Acknowledgements")

Comment only
08 May 2012 Matthias Pospiech

I can only get files in some cases.

For example
ListOfFiles = rdir([BaseDir 'Ausleuchtung\a\' '*\**\*_ORG.tif'])

finds nothing, whereas the parent folder

ListOfFiles = rdir([BaseDir 'Ausleuchtung\' '*\**\*_ORG.tif'])

find everyting in folder \a\.

This currently makes the rdir script mostly unusable for me.

30 Nov 2011 Mike Sheppard

Mike Sheppard (view profile)

15 Jul 2011 Thomas Vanaret

@ Pietro and other RDIR users :
I just submitted an enhanced version of RDIR function that fix bug on returned path an add some new features.

See "Recursive directory listing - Enhanced RDIR" below / File ID: #32226

Comment only
22 Jun 2011 pietro

pietro (view profile)

Hi Thomas,so in which way can it be fixed?

Comment only
14 Jun 2011 Thomas Vanaret

@ pietro : there is indeed a bug in the way the displayed path is built in rdir function, in the "if isempty(wildpath)" statement.

Output name is built only from "prepath" and "D(ii).name" (on line 87). "postpath" is always omitted whereas it can be the parent directory name.

Comment only
10 Jun 2011 pietro

pietro (view profile)

This function is great but unfortunately with many subfolders it has some problems. For example I have typed this:
files=rdir('C:\Users\ml\Documents\virtual\model\Multibody output signals')

and I got:
C:\Users\ml\Documents\virtual\model\Plot_1_SYSTEM;Time;;lower housing (NAUO9);xdd.txt

insted with uigetfile I got:
C:\Users\ml\Documents\virtual\model\Multibody output signals\Plot_1_SYSTEM;Time;;lower housing (NAUO9);xdd.txt

With less subfolders I don't get this problem.

Comment only
23 Feb 2011 pietro

pietro (view profile)

The best!

06 Sep 2010 Mathias Lindner

A very helpful script. After some troubles in the beginning using the inconvenient double-star '**' everything is perfect now.

02 Dec 2009 Kevin

Kevin (view profile)

Very Useful Function.
One thing I have noticed when using this function is that the results are not unique. The files that are returned seem to be repeated based on how many subdirectories deep they are. This issue is easily fixed by running unique on the results.

06 Aug 2009 Bart Geurten

24 Jun 2009 Oleg Komarov

Oleg Komarov (view profile)

22 Jan 2009 Ashish Uthama

29 Jul 2008 Phillip Feldman

Excellent! Just what I was looking for.

The double star syntax is a bit strange. I'd like to suggest that a slightly cleaner and more flexible mechanism for controlling the recursive searching would be an optional argument that specifies the maximum folder depth of the search.

16 Jul 2008 Imaging Coderguy

I used FUF extensively in the past, and though it did the job, its slowness and quirks were problematic. RDIR on the other hand is so slick and well-made that it may as well be a mathworks-made function. Great work!

12 Jun 2008 Dennis Olly

FUF was great, but failed on folders with a '.' in the name, eg '\recon_P20992.7\'. Rdir is excellent!

13 May 2008 Dimitri Shvorob

Great job! Did what neither FUF nor DIRR (earlier FEX submissions) managed to do, and surprisingly fast, too.

Contact us