| 1 | 
 /** | 
 
 
 
 
 
 | 2 | 
  * \page faq QuaZip FAQ | 
 
 
 
 
 
 | 3 | 
  * | 
 
 
 
 
 
 | 4 | 
  * <!-- | 
 
 
 
 
 
 | 5 | 
  * | 
 
 
 
 
 
 | 6 | 
  * \ref faq-non-QIODevice "Q. Is there any way to use QuaZipFile in Qt where you are supposed to use normal (non-zipped) file, but not through QIODevice API?" | 
 
 
 
 
 
 | 7 | 
  * \ref faq-zip64 "Q. Can QuaZIP handle files larger than 4GB? What about zip64 standard?" | 
 
 
 
 
 
 | 8 | 
  * | 
 
 
 
 
 
 | 9 | 
  * \ref faq-seekable "Q. Can QuaZIP write archives to a sequential QIODevice like QTcpSocket?" | 
 
 
 
 
 
 | 10 | 
  * | 
 
 
 
 
 
 | 11 | 
  * --> | 
 
 
 
 
 
 | 12 | 
  * | 
 
 
 
 
 
 | 13 | 
  * \anchor faq-non-QIODevice Q. Is there any way to use QuaZipFile in Qt | 
 
 
 
 
 
 | 14 | 
  * where you are supposed to use normal (non-zipped) file, but not | 
 
 
 
 
 
 | 15 | 
  * through QIODevice API? | 
 
 
 
 
 
 | 16 | 
  * | 
 
 
 
 
 
 | 17 | 
  * A. Usually not. For example, if you are passing file name to some | 
 
 
 
 
 
 | 18 | 
  * database driver (like SQLite), Qt usually just passes this name down | 
 
 
 
 
 
 | 19 | 
  * to the 3rd-party library, which is usually does not know anything | 
 
 
 
 
 
 | 20 | 
  * about QIODevice and therefore there is no way to pass QuaZipFile as | 
 
 
 
 
 
 | 21 | 
  * normal file. However, if we are talking about some place where you | 
 
 
 
 
 
 | 22 | 
  * pass file name, and then indirectly use QFile to open it, then it is | 
 
 
 
 
 
 | 23 | 
  * a good idea to make overloaded method, which accepts a QIODevice | 
 
 
 
 
 
 | 24 | 
  * pointer. Then you would be able to pass QuaZipFile as well as many | 
 
 
 
 
 
 | 25 | 
  * other nice things such as QBuffer or QProcess. | 
 
 
 
 
 
 | 26 | 
  * | 
 
 
 
 
 
 | 27 | 
  * \anchor faq-zip64 Q. Can QuaZIP handle files larger than 4GB? What | 
 
 
 
 
 
 | 28 | 
  * about zip64 standard? | 
 
 
 
 
 
 | 29 | 
  * | 
 
 
 
 
 
 | 30 | 
  * A. Starting with version 0.6, QuaZIP uses Minizip 1.1 with zip64 | 
 
 
 
 
 
 | 31 | 
  * support which should handle large files perfectly. The zip64 support | 
 
 
 
 
 
 | 32 | 
  * in Minizip looks like it's not 100% conforming to the standard, but | 
 
 
 
 
 
 | 33 | 
  * 3rd party tools seem to have no problem with the resulting archives. | 
 
 
 
 
 
 | 34 | 
  * | 
 
 
 
 
 
 | 35 | 
  * \anchor faq-seekable Q. Can QuaZIP write archives to a sequential QIODevice like QTcpSocket? | 
 
 
 
 
 
 | 36 | 
  * | 
 
 
 
 
 
 | 37 | 
  * A. Not yet. It is not supported by vanilla Minizip (the back-end | 
 
 
 
 
 
 | 38 | 
  * QuaZIP uses), although theoretically possible according to the ZIP | 
 
 
 
 
 
 | 39 | 
  * standard. It would require some Minizip modifications that would | 
 
 
 
 
 
 | 40 | 
  * allow it to detect non-seekable I/O and produce necessary output | 
 
 
 
 
 
 | 41 | 
  * structures. QuaZIP already writes data descriptor which is necessary | 
 
 
 
 
 
 | 42 | 
  * for non-seekable I/O. The only thing that is apparently left is to | 
 
 
 
 
 
 | 43 | 
  * make Minizip fill local headers with correct values and forget about | 
 
 
 
 
 
 | 44 | 
  * seeking after closing the file. | 
 
 
 
 
 
 | 45 | 
  **/ |