46

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 7

52

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

8
  • 3
    Well, okay... This will work too. Just wondering why no one uses the standard Search function of Windows for this. :-) Commented 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. Commented Jan 26, 2011 at 11:01
  • 4
    @WimtenBrink: and how are you going to send windows search to another user? Commented Jun 26, 2012 at 8:53
  • 1
    You dont need to pipe to more, you just need the /p switch (does the same thing)
    – Keltari
    Commented May 1, 2013 at 18:37
  • 5
    Since the question doesn't mention directories, it should be dir /a-d /b /s.
    – jiggunjer
    Commented Oct 7, 2016 at 3:11
21

Try tree /f. This should output the entire structure.

6
  • 1
    Which will be displayed as a tree, not a list.
    – Joey
    Commented Aug 31, 2009 at 8:29
  • You don't think the OP would consider that result a list?
    – hyperslug
    Commented Aug 31, 2009 at 8:59
  • 2
    I thought the tree command would have the best formatting, allowing you to clearly see the level of the subfolders.
    – alex
    Commented Aug 31, 2009 at 9:25
  • it does have the best structure. can it be saved as a text file or html file?
    – xypha
    Commented Sep 11, 2016 at 7:58
  • tried tree /f>filelist.txt & it worked.
    – xypha
    Commented Sep 11, 2016 at 8:00
5

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).

4
  • No need to install anything here, as dir is perfectly capable of this.
    – Joey
    Commented Aug 31, 2009 at 8:30
  • 1
    @Johannes, have you compared a Unix find output with a DOS dir /s or tree for that matter?
    – nik
    Commented Aug 31, 2009 at 9:36
  • 1
    Have you ever used dir /b? :-)
    – Joey
    Commented Sep 2, 2009 at 5:13
  • @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 open cmd shell and avoid /usr/bin/dir to try that option. But, it does work; glad to learn that :-)
    – nik
    Commented Sep 2, 2009 at 6:27
4

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.

1
  • Thanks for such a simple solution. Commented Sep 7, 2022 at 15:55
2

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?

5
  • 3
    because it is not 1337? :-)
    – Natrium
    Commented Aug 31, 2009 at 13:14
  • 13
    You would have a hard time getting that in a text file, for example.
    – Joey
    Commented Sep 2, 2009 at 5:14
  • True, but why would someone wants it in a text file? :-) Commented Sep 2, 2009 at 7:30
  • 2
    Note 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.
    – Martin
    Commented Jan 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
    – TOOGAM
    Commented Oct 3, 2015 at 13:06
0

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++.
  • Then just trim the top & tail of the text file.
0

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).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .