If you have a directory branch - \MYPROG, say - with empty subdirectories, and you wish to zip the whole branch, you must use PKZIP if you wish to include empty directories in the .ZIP file. Use the -rp switch:-
PKZIP -rp zipfile \MYPROG\*.*Having created this archive, it can be unzipped with PKUNZIP -d -e zipfile *.*. Unfortunately, if you try to use XTree to do the unzipping it will again ignore empty directories.
The inability to zip empty directories is a major omission from XTree. It can, however, be overcome by storing a file - any file - in these directories before zipping. To conserve disk space I suggest you use a zero-length file. This expedient lets you stay within XTree and reap the benefits of the ease and simplicity of its Zip implementation.
But where do you get hold of a zero-length file? In the CP/M days on the Osborne, it was easy, using the CP/M Save command; but DOS does not have an equivalent. However, you may well have a suitable file lurking somewhere on your hard disk. To find it, key Alt-S S to change XTree's sort order to size, then in the directory window key S yet again to select Showall. Any zero-length file will now be at the start of the file list.
If this fails, you might have an erased zero-length file in your \TEMP or \TMP directory. Unfortunately, just as XTree doesn't let you zip empty directories, it also doesn't let you undelete empty files. So run the DOS Undelete command to see if you have such a file which you can undelete.
If there is no suitable file there, you will have to resort to BASIC - either QBASIC or GWBASIC. Start BASIC and type in the following line:
OPEN "R", #1, "ZERO" : CLOSE : SYSTEMHaving by whatever means found a suitable zero-length file, copy it with the new name ZERO or EMPTY to a suitable directory (the root will do) where it will be readily available for copying to empty directories.
Tom Ruben