This file contains some answers to frequently asked questions about PKZIP 2.0, and hints for most efficient use of the software. Q: Is PKZIP and PKUNZIP completely compatible with older versions? A: PKZIP and PKUNZIP are completely downwardly compatible, but not upwardly. What does this mean? This means that if you compress something with PKZIP 2.0, you will need PKUNZIP 2.0 or later to extract it. However, PKUNZIP 2.0 will uncompress any .ZIP file made by any version of PKZIP 2.0 or earlier. Therefore, If you have the latest version of PKUNZIP, you need not worry about not being able to decompress any .ZIP file. Q: I get "Warning, I don't know how to handle" when trying to extract files. A: Most likely you are using PKUNZIP 1.1 or an earlier version to attempt to extract a .ZIP file created by PKZIP 2.0 or later. Make sure that you are using the latest version of PKUNZIP. Also be sure you do not have multiple copies of pkunzip in different areas on your machine. It may find and use an older version before it finds the newer version. Q: How do I make self-extracting files? A: This is a two step process. First create a .ZIP file normally with PKZIP, and then use ZIP2EXE to create a self extracting .EXE file. For example, if you have a .ZIP file called STUFF.ZIP and then entered: zip2exe stuff it would create STUFF.EXE which is a PKSFX self-extracting file. Q: I get "Bad command or File name" when I type in PKZIP or PKUNZIP. A: This is a DOS error message, and means that PKZIP/PKUNZIP is not in the current directory, or locatable by the DOS PATH variable. Consult your DOS manual for use of the PATH statement. Q: I get "Error in zip, use pkzipfix", when attempting to compress files. A: This may be the result of an incorrect command line. The name of the .ZIP file you are creating needs to be BEFORE the names of the file you want to compress. For example, if you want to compress FILE1 and FILE2 into STUFF.ZIP, use: pkzip stuff file1 file2 and not: pkzip file1 file2 stuff Q: How can I use PKZIP to create full and incremental backups? A: When creating a full backup with PKZIP, use the -a+ option. This will turn off the file's archive bit after it is compressed. For example: C:\> pkzip a:fullback -&s -a+ will backup the entire C: drive to a multi-disk .ZIP file called FULLBACK.ZIP on the A: drive. Then, whenever a file is updated or created by DOS, it will turn on the file's archive bit, indicating that the file has changed since it was last backed up. You can create an incremental backup set with PKZIP by using the -i switch to only compress files that have their archive bit set, and turn off the archive bit after it is compressed. For example: C:\> pkzip a:incback1 -&s -i will backup all the files on drive C: that are new or have been modified since the last backup was performed. Q: What is an AV? A: The Authenticity Verification feature allows you to create .ZIP files that PKUNZIP or PKSFX can test for authenticity while extracting. This provides for detection of tampered, hacked, or virus infected files. Q: How do I use my AV? Where is my AV? A: The first thing you need to do is fill out AUTHVERI.FRM included in the PKZIP distribution package with the necessary information and mail or FAX this to PKWARE. We will then process your information and send you back the information needed to use with the PUTAV to install your AV information. AV numbers are not the same as your serial number on the diskette. Q: I ran PUTAV.EXE on the new PKZIP but it did not work, Why? A: First of all, you need to make sure that you are using the PUTAV.EXE from the registered 2.0 version. You can not use the PUTAV.EXE from 1.1, to try and install the AV numbers into version 2.0 of PKZIP. The AV process has changed and you need to use the PUTAV.EXE from version 2.0. Also, PUTAV.EXE will not work with the shareware version of PKZIP.EXE, you need to have the registered PKZIP.EXE file. Q: I extracted a .ZIP file, but it didn't recreate the directory structure stored in the .ZIP file. A: First make sure the files were compressed using the -rp option in PKZIP. Next, be sure you use the PKUNZIP option -d when extracting files. The -d option tells PKUNZIP to re-create stored directories on extraction. Q: I lost the last diskette, or have errors on the last diskette in my backup set; or lost or have problems with one or more other diskettes in my backup set; or I hit Ctrl C and aborted PKZIP while I was creating the backup set. How can I recover the files that are still intact in the backup set? A: PKZIPFIX can be used to restore the .ZIP file index after the .ZIP files on each diskette have been concatenated into one .ZIP file. Starting with the lowest number backup diskette (normally disk #001, PKZIP places the volume label PKBACK# nnn onto each disk, where nnn is the disk number), copy this file to your hard disk (or network disk). For example, say the .ZIP filename for the backup set is BACK1.ZIP, on drive B:. Enter: copy b:back1.zip Then, insert each diskette in ascending numerical order and enter: copy/b back1.zip+b:back1.zip After you have gone through the all the disks in the backup set, then use PKZIPFIX on this file by entering: pkzipfix back1 This will create the file PKFIXED.ZIP which can then be extracted by PKUNZIP. Any files that were on missing or damaged diskettes will most likely have errors, but any files that were wholly contained on intact diskettes should be extractable. This procedure will also work on a subset of the backup set, if for example, you only wanted to recover the files on disks 10 through 15. Q: When is it valid to use a '-' or '+' switch at the end of a option? A: With PKZIP and PKUNZIP certain options may be followed by a trailing - or + to modify the original option. The basic rule to follow in knowing whether a - or + will effect the original option is, if the option can be modified in the PKZIP.CFG file, then a - or + will effect it. Below is a list of options that can be affected by a trailing '-' symbol. As always consult your manual for more information about individual switches. OPTION MEANING ------ ------- -i- Do not clear the archive attribute -k- Override ZIPDATE=KEEP in pkzip.cfg -m- Do not remove directories after compression -o- Override ZIPDATE=LATEST in pkzip.cfg -p- Override PATHS=ALL or PATHS=RECURSE -q- Override ANSI=ENABLED -r- Override RECURSE=ON -(- Override SLOWMEMCPY=ON -&f- Override FORMAT=ON -&l- Override BACKUP=LOW -&s- Override BACKUP=FULL -&u- Override BACKUP=UNCONDITIONAL -&v- Override BACKUP=VERIFY -&w- Override BACKUP=WIPE -&- Turns off all BACKUP= options Here is a list of the options that can be modified by a trailing '+' symbol. OPTION MEANING ------ ------- -a+ Clear archive attributes for files archived -3+ Override 386=DISABLE -++ Override EMS=DISABLE --+ Override XMS=DISABLE -~+ Override NETWORK=DISABLE -)+ Override DPMI=DISABLE (also in PKUNZIP) Q: What is the difference between the PKZIP option -b and the PKTMP= environment variable? A: PKZIP creates two different types of temporary files, and allows you to specify the location the location of these two types separately. The two situations where PKZIP creates temp files are: * When a file is being compressed by PKZIP * When an existing .ZIP file is being modified When PKZIP is in the process of compressing a file, it might need to create a temporary file to store information that does not fit in memory. PKZIP will create these temporary files in the directory pointed to by the PKTMP= environment variable, or in the current directory if this variable is not present. For example, the command: set pktmp=d:\ will tell PKZIP to create these temporary files on the D:\ drive. In general, you can get the best performance from PKZIP by having PKTMP= point to a RAM disk or very fast disk in your system, unless you are creating or updating a .ZIP file on a Novell network drive (see the question regarding Netware support earlier in this document). When PKZIP updates an existing .ZIP file, it creates a new temporary .ZIP file and copies files from the existing .ZIP file or (re)compresses files into this new file. If the PKZIP process were to be interrupted in any way, the original .ZIP file is still intact. Once the new .ZIP file is created, PKZIP deletes the old .ZIP file and renames the new temporary .ZIP file to the original name. This however requires that at least twice the size of the original .ZIP file be free on the drive where the .ZIP file is. If say you had a 400K .ZIP file on a 720K diskette, you will get an "insufficient disk space" error when trying to modify this .ZIP file, even if you only wanted to add one small file. The -b option tells PKZIP to create the new temporary on a drive different from where the original .ZIP file is located, and then copy the new .ZIP file to the destination drive when done. For example: pkzip b:stuff *.bat -bc: Tells PKZIP to add the files *.BAT to the file B:STUFF.ZIP, and create the new temporary .ZIP file on drive C:. Using the -b option slows down PKZIP, but allows you to update .ZIP files that are larger than the available free space on a disk. Q: PKZIP/PKUNZIP 2.0 have several options for DPMI, EMS, XMS, 386, NETWARE, etc. What are these things and why does PKZIP/PKUNZIP use them? A: DPMI stands for DOS Protected Mode Interface. It is a facility that allows standard DOS programs to execute code in 32-bit protected mode, and have access to protected mode resources in the computer. Protected mode code runs faster than corresponding real mode code. PKZIP/PKUNZIP use DPMI to execute some code in protected mode for better speed. With DPMI, PKZIP/PKUNZIP can run up to 25% faster or more using 32-bit protected mode code versus using 16-bit real mode code. EMS and XMS stand for Expanded Memory Specification and eXtended Memory Specification respectively. These are implemented using a memory manager on an 80386 or 80486 CPU, or using memory management hardware on an 8088 or 80286 system. EMS and XMS allows standard DOS programs to use memory outside of the conventional 640K memory space. PKZIP/PKUNZIP will use this memory in order to allow the software to run in less conventional memory. This is most useful when shelling out of other applications to run PKZIP or PKUNZIP and there is very little conventional memory free. PKZIP and PKUNZIP support 80386 and 80486 CPU's and has special code that takes advantages of these chips. This code runs fastest in protected mode with DPMI (see above). However, even when running in real mode PKZIP/PKUNZIP will use 32-bit code for better speed. Using 32-bit code can allow PKZIP/PKUNZIP to run up to 10% faster or more compared to executing 16-bit code. PKZIP also is Novell Netware aware. When creating or updating .ZIP files on a network drive, use of Novell functions can make PKZIP run several times faster than it would otherwise. To get maximum performance when creating or updating a .ZIP file on a network drive, make sure that the PKTMP= environment variable points to a drive in the same server as the .ZIP file; or if you do not have the PKTMP= environment variable set, that the current directory is on a drive that is in the same server as the .ZIP file. Q: My PKZIP says it detects certain versions of DPMI, EMS, or XMS that are different than the version numbers for my memory manager or driver. Why is this? A: There is a difference between the version number of a driver and the version of the DPMI/EMS/XMS specification that it supports. For example, QEMM version 6.02 supports version 3.00 of the XMS specification and version 4.00 of the EMS specification. QDPMI version 1.01 supports version 0.90 of the DPMI specification. The version of the specification supported affects what functions that driver will support. PKZIP/PKUNZIP display the version of the specification supported, not the version of the memory manager or driver that provides this support. Q: PKZIP/PKUNZIP display different DPMI/EMS/XMS versions when in Windows than outside of Windows. Why is this? A: Windows provides its own support of DPMI, EMS and XMS, regardless of any memory managers or drivers loaded prior to running Windows. The specification versions supported by Windows may be different than those supported by memory managers or device drivers loaded prior to Windows, and hence PKZIP/PKUNZIP will display different specification versions inside of Windows than in DOS.