How to deal with linking problems in Microsoft Visual Studio?
        
        
            - If you receive LNK2005, your application probably uses
				different run-time libraries that the ZipArchive Library was compiled for.
 
            - If you receive LNK1104 (e.g. cannot open the mfc42u.lib file), you probably haven't installed Unicode libraries.
 
            - If you receive C2872 among others in a C++/CLI application,
				you need to correct the linking order.
 
        
        To read about detailed solutions, see 
Compilation of the ZipArchive Library and Integration with Applications.
        
            How to compile the library for x64 under Microsoft Visual Studio?
        
        See 
Compilation of the ZipArchive Library and Integration with Applications for the instructions.
		
            How to create an archive larger than 4GB or compress more than 65535 files inside
			it?
        
        The standard zip format does not support large archives or large files inside archives
		(even if a compressed file was smaller than 4GB). You need to use the Zip64 extensions.
		See 
Zip64 Format: Crossing the Limits of File Sizes and Number of Files and Segments for more information. This functionality
		is available only to the purchasers of the Full Version license.
		
            How to use UNC paths of very long paths (longer than MAX_PATH)
			under Windows?
        
        See 
Compilation of the ZipArchive Library and Integration with Applications for the solution.
		
            Can I perform multithreaded operations on an archive?
        
        
        
            Why I can't make the library to work as expected in a MFC application?
        
        Make sure that your application defines 
_ZIP_IMPL_MFC.
		See 
Compilation of the ZipArchive Library and Integration with Applications for more information.
		
        
            - Some archives are not entirely consistent in their structure, however the compressed
				data may be correct. Try relaxing some of the consistency checks with the CZipArchive::SetIgnoredConsistencyChecks()
                method. 
 
            - Another reason is that data in the archive is compressed using imploded method (usually
				by old archivers). The ZipArchive Library supports only deflation (which is the
				most commonly used by archivers) and storing. To determine the compression method
				for a particular file, obtain the information data (see Requesting Information, Predicting Names and Sizes)
				and examine the CZipFileHeader::m_uMethod field.
 
        
        
            Why I receive the CZipException::cdirNotFound exception
			when trying to open a segmented archive?
        
        You need to open the last segment. For more information about dealing with this
		problem in spanned archives, see 
Segmented Archives: Splitting and Spanning.
		
            How can I detect the segmentation mode of an archive?
        
        You need to open the archive and the call 
CZipArchive::GetStorage()
        and then 
CZipStorage::IsSegmented()s.
		
            How to use a partial path for the filename inside an archive?
        
        For example, if you compress a directory 
c:\Program Files\Example,
		the full path of the file inside the archive is stored. If you would like to store
		the path for the file, e.g. in 
c:\Program Files\Example\text\txt\file.dat,
		as 
Example\text\txt\file.dat, use the 
CZipArchive::SetRootPath()
        method. In this example, you would set it
		to 
c:\Program Files\. Remember about setting 
bFullPath
        argument in compression methods to 
false.
		
            How to create an archive under Windows that will be readable under Linux/OS X?
        
        Inside archives there is information stored about the system it was created under.
		It helps converting the file attributes that are stored inside the archive to file
		attributes that are used on the system on which the file is extracted. Some Linux
		archivers cannot convert Windows attributes to Linux, so that it is needed to create
		an archive with the Linux/OS X attributes already (and the internal info about
		the system set to the Linux value). To do it, simply call the 
CZipArchive::SetSystemCompatibility()
        method with the 
iSystemID argument set to
		
ZipCompatibility::zcUnix. See also 
Unicode Support: Using Non-English Characters in Filenames, Comments and Passwords to
        read how to preserve filenames compatibility.
		
            How to extract or delete files that match a specified wildcard pattern?
        
        You need to build a 
CZipIndexesArray object with the 
CZipArchive::FindMatches()
        method and then:
		
        See 
Searching in Archive for more information.
		
            Why an exception is thrown when I call one of CZipArchive::CloseFile()
            methods?
        
        If you haven't extracted file contents entirely (e.g. only the beginning) or you
		have encountered an exception during extraction, you need to call the 
CZipArchive::CloseFile(LPCTSTR,             bool) with 
bAfterException
        parameter set to 
true.
		
            How to quickly detect if a file is a zip archive without reading a whole archive
			directory?
        
        Use one of the static methods:
	    
        How to create archives that are not extractable by other libraries?
        The easiest way is to go to 
CZipFileHeader.cpp and 
CZipCentralDir.cpp
        and change values of the two first bytes in all 
m_gszSignature(...) fields. Keep the fields at the same size though. It is
        enough to change the first byte from 0x50 to e.g. 0x60. Just for the consistency update the same way 
CZipStorage::m_gszExtHeaderSignat.
        
            Will the ZipArchive Library work with .NET applications?
        
        You can use the Library with a C++/CLI application. See 
Compilation of the ZipArchive Library and Integration with Applications
        for more information.