In windows, is there any way to get a list of all files in a folder, including all the files within all the subfolders?
7 Answers
List all Files Recursively
C:
\
>dir /s
To save them to a file
C:
\
>dir /s /b>filelist.txt
View them a page at a time
C:
\
>dir /s | more
-
3Well, okay... This will work too. Just wondering why no one uses the standard Search function of Windows for this. :-) Aug 31, 2009 at 10:03
-
2@Workshop Alex: Because 1) recursive
dir
is just a little bit faster if it doesn't have to check any conditions; 2) it lets you save the names into a file. Jan 26, 2011 at 11:01 -
4@WimtenBrink: and how are you going to send windows search to another user? Jun 26, 2012 at 8:53
-
1You dont need to pipe to more, you just need the /p switch (does the same thing)– KeltariMay 1, 2013 at 18:37
-
5Since the question doesn't mention directories, it should be
dir /a-d /b /s
. Oct 7, 2016 at 3:11
Try tree /f. This should output the entire structure.
You will get UnixUtils at sourceforge, that will give you find.exe
.
You can then do the following for list of all files with folder paths.
cd Path\to\folder
find.exe . -type f
There are other forms of the Unix command that may be useful for you.
The output is more search-able compared to the native dir
and tree
commands.
Updated with input from Johannes
.
In the cmd.exe
shell
dir /b /s
works quite well for a recursive listing in the Widows formatted form,
(so you see "C:\
" and the reverse slashes, '\
').
I completely missed the "\b
" in Nifle
's answer! (+1 for that now).
-
-
1@Johannes, have you compared a Unix
find
output with a DOSdir /s
ortree
for that matter?– nikAug 31, 2009 at 9:36 -
1
-
@Johannes, actually I cannot remember if I did that in the DOS 6.22 days. Got more used to
find
and with Cygwin, never tried the dos commands (actually took me a moment to opencmd
shell and avoid/usr/bin/dir
to try that option. But, it does work; glad to learn that:-)
– nikSep 2, 2009 at 6:27
I find this batch file every useful
DragDropListFile.bat
@ECHO OFF
SET targetPath="%~1"
SET ToolPath=%~dp0
dir %targetPath% /b /s /a-d > "%ToolPath%list.txt"
Usage: Just drag the folder and drop it on the file DragDropListFile.bat, then a file called list.txt, which contains what you want, is created.
If you don't like drag & drop, try this batch file
ListFile.bat
ECHO OFF
SET crtPath=%~dp0
dir "%crtPath%" /b /s /a-d > list.txt
Usage: put the file ListFile.bat in the folder you want to list files, then run the file ListFile.bat, then a file called list.txt, which contains what you want, is created.
Why so complex? Press Windowskey+F to start the "File Search" in Windows. On the left, go to "Look in" and select the option at the bottom called "Browse...". Select the (sub)folder where you want to search in. Enter "*" (without the quotes) in the "All or part of the file name" editbox and start the search. Get some coffee when you're searching on a big disk with lots of data and just wait for this explorer-based search engine to show you a complete list. You can search it, open files directly and even narrow your search if need be.
Why do people forget this default search behaviour of Windows?
-
3
-
13
-
-
2Note that this will (on Win XP at least) search all ZIP files in all subfolders as well. Which will be horribly slow. Which probably isn't what you want. Which can't be easily switched off. If there are no ZIP files, I agree that this is the best approach.– MartinJan 26, 2011 at 9:49
-
2@Wim: Your 5-step process (Win+F, Browse, Subfolder, *, Start) is much slower than just typing "dir/s" (for a typist who types over 100 words per minute, and is used to doing stuff at a command prompt, so it is frequently pre-opened). Also, the process you mention has changed w/ Windows versions, while "dir/s" has been consistent. Also, your process requires pressing Win+F, which isn't always easy. Sometimes, even if a keyboard has the Windows key, that key may be more difficult to use, such as in Remote Access scenarios where the key might be used by the local computer instead of the remote– TOOGAMOct 3, 2015 at 13:06
dir /s /w >files.txt
will get you most of the way there. It will keep the extensions. Then open files.txt
in a text editor and either
- sort all the lines and delete the superfluous ones
- or remove them with a find and replace operation or 2.
- The regex
^ +\d+ File.+\r\n\r\n Dir.+\r\n\r\n
got rid of the gaps and folder details between the individual folder files listings for me in Notepad++.
- The regex
- Then just trim the top & tail of the text file.
I know this is a very old thread and I don't even know why I clicked on it since I didn't search for it, but I'm really surprised how there's no answer listing the simple
*
as search query.
Either way, nowadays there's a setting for this in windows explorer (all subfolders/ this folder only)
.