ZAPDIR: REMOVE DIRECTORIES by Scott Pakin Why ZAPDIR? ----------- One problem hard disk users sometimes face is removing unwanted directories. DOS won't let you remove a directory that has any content -- even a single file or subdirectory. DOS requires you to go the the lowest level in the directory tree, erase all the files in it, go up a level, remove the subdirectory (repeating for any other subdirectories), erase all the other files, go up a level, and then, finally, remove the original directory you wanted to get rid of. This is a real hassle, but it's even worse when you have hidden files or read-only files (that some copy-protected programs leave behind). When you issue a DIR command, DOS might tell you that there are no files in the directory, but when you use RD (or RMDIR), you'll get a "Directory not empty" error message. This usually means you have to use an attribute-changer (such as ALTER or MARK) to make the files "normal." Let's say your directory tree looks like this: \ AUTOEXEC.BAT CONFIG.SYS ZAPDIR.COM WIPEDIR.BAT \VALUABLE SPREAD.EXE DATABASE.EXE WORDPROC.COM SPELLCHK.COM WORDS.ABC \GARBAGE WORTHLES.JNK WASTEOF.$$$ \HARMFUL CLEANDSK.EXE CRASH.COM GARBLE.EXE NUISANCE.HAH VIRUS.COM To get rid of directory GARBAGE, you have to type the following: DEL GARBAGE\HARMFUL\*.* RD GARBAGE\HARMFUL DEL GARBAGE\*.* RD GARBAGE If \GARBAGE\HARMFUL\NUISANCE.HAH is a read-only file, it will prevent you from removing \GARBAGE\HARMFUL and thus \GARBAGE, unless you use an attribute-changer to make it a normal file. ZAPDIR to the rescue! Using ZAPDIR, you need not delete files or subdirectories. You just type: ZAPDIR GARBAGE to remove the sample directory. ZAPDIR even erases NUISANCE.HAH, although it's a read-only file. This saves a lot of time and bother. Limitations ----------- ZAPDIR has a few limitations, none that make it more difficult to use than a sequence of DELs and RDs. First, you cannot provide a drive name; you must use the default drive. Second, you can't use the "\" character. This means you have to be exactly one level above the directory you want to remove. (In this example, you'd have to be in the root directory.) Third, removing non-empty directories leaves one lost chain for every file or directory erased. These lost chains can easily be removed by using CHKDSK with the /F option immediately after using ZAPDIR. How do I use ZAPDIR? -------------------- WIPEDIR.BAT, shown below, is a batch file which invokes ZAPDIR. To invoke WIPEDIR, type: WIPEDIR directory First, WIPEDIR tells you which directory you told it to erase. Then, it gives you a warning message, reminding you that removing a non-empty directory will obliterate all files and subdirectories belonging to it. If this is what you want to do, press a key. Otherwise, press Ctrl-Break. Next, ZAPDIR is used to remove the directory. If ZAPDIR is successful, CHKDSK will be invoked with /F. When CHKDSK asks if you want to "convert lost chains to files," WIPEDIR will automatically answer "no." N ECHO OFF CLS ECHO Name of directory to remove: %1 ECHO (If you didn't provide a directory name, press Ctrl-Break and start over.) ECHO -------------------------------------------------------------------------- ECHO WARNING! This command will remove the above directory regardless of ECHO whether it is empty or not. All subordinate directories and files (even ECHO hidden, read-only, etc.) will be erased. To cancel this command, press ECHO Ctrl-Break. Otherwise, PAUSE ZAPDIR %1 IF ERRORLEVEL 1 GOTO THEEND CHKDSK/F < WIPEDIR.BAT :THEEND What do I do if I find ZAPDIR useful? ------------------------------------- Relax. I'm not asking for money. However, if you find ZAPDIR useful, if you can't figure out how you lived without it, if you find a use for it other than erasing unwanted, non-empty directories, if you have any questions or suggestions, I'd appreciate it if you sent me a postcard. Send it to: Scott Pakin 6007 N. Sheridan Rd. Chicago, IL 60660