How many
times have you been browsing through
directories in Windows Explorer and wished you could generate a text
file or printout listing the files and folders? It seems like such a
simple request that it's amazing the option
isn't available. You don't believe
me? Right-click on a folder and see for yourself if there is an
option to list or print the structure. There isn't,
but there is a workaround that doesn't require any
third-party software. Here's how to create a context
menu item that, when
clicked, generates a printable (and editable) text-file listing of
the selected directory.
To create the entry in the context menu it's
necessary to first create a batch file. A
batch file is a text file that contains a sequence of commands for a
computer operating system and uses the .bat
extension. The format for the .bat file is:
dir /a /-p /o:gen >filelisting.txt
The name of the .txt file can be whatever you
like. In this example, I've used
filelisting.txt, but it could just as easily be
filelist, listoffiles,
namedfiles, or even Wally
if you enjoy the bizarre in your filenaming schemes. Once
you've decided on the filename, create the file in
Notepad, as shown in .
Figure 1. Creating a batch file in Notepad
Save the file in your WINDOWS folder as shown in
, making sure to use the .bat
extension and not the default .txt
extension. It's important to set
"Save as type" to All Files and
"Encoding:" to ANSI.
Figure 2. Saving file listing.bat
Now that we have the .bat file created, the next
step is to make it functional and easily accessible by integrating it
into the context menu that opens when a right click is executed. Open
Windows Explorer and choose Tools → Folder Options
→ File Types tab → Folder → Advanced
→ New, to open the New Action box shown in .
Figure 3. Creating a new action for the context menus
In the Action box, type the name that you want to appear in the
context menu. Once again, you have wide latitude in choices;
something like Create File Listing will probably be most useful, but
you can name yours something more confusing if you like. Browse to
the location of the .bat file you created, and
select it in the box labeled "Application used to
perform action." Click OK, and
you'll see that Create File Listing (or whatever you
chose as an action name) has been added as one of the Actions in the
Edit File Type window, as shown in . Do
the standard Windows dance of clicking OK again to close all the open
windows.
Figure 4. The revised Edit File Type box with your new action
That's it! Congratulations. You've
created a new item on the context menu that's ready
to go to work. So, now that's it there, what can you
do with it?
Open up Windows Explorer. Navigate to whatever folder you want to use
as the basis for the file list, and right-click to open the context
menu. Click on the Create File Listing item (see ), and the list will be generated and displayed
at the bottom of the open Notepad window as
filelisting.txt.
shows the file listing generated from the Sample Music folder shown
in . Since it is a text file, it can be
fully edited, copied, pasted, printed, and so on for any purpose.
Figure 5. Your new context-menu action: Create File Listing
Figure 6. The generated file listing, all ready for editing and printing
TIP
If for any reason you want to remove the Create File Listing entry
from the context menu, you must edit the Registry [Hack #68].
Navigate to
HKEY_CLASSES_ROOT\Folder\shell\Create_File_Listing
and delete the Create_File_Listing key in the left
pane. Close regedit and reboot to complete removal.
Alternative Method for Users of Outlook XP
If you happen to be a user of
Outlook XP, there
is another method available for printing directory listings that
requires no system modifications. Using the Outlook Bar, you can
generate a nicely formatted listing with a few mouse clicks:
-
Open Microsoft Outlook.
-
Choose View → Outlook Bar → Other Shortcuts.
-
The three default selections listed are My Computer, My Documents,
and Favorites. Select one and navigate the tree until the directory
is displayed in the right pane.
-
When the display matches what you'd like to print,
click the printer icon on the Outlook toolbar.
—Jim Foley
E.g. you click on C:\Windows and you get the context menu - after the command, you will get a listing of the files and folders in C:\ (and not C:\Windows as you would expect). Hence if you would want to list the contents of a directory which has no directory in it in turn, you would have to create a dummy directory in that folder just to be able to click on it and list the files inside this.
Is there no way to pass the object information from the clicked folder to the command (so that you would actually list the directory you clicked on)?