1 |
\label{faq_faq-non-QIODevice} |
2 |
Q. Is there any way to use \doxyref{QuaZipFile}{p.}{classQuaZipFile} in {\bf Qt} where you are supposed to use normal (non-\/zipped) file, but not through {\bf QIODevice} API? |
3 |
|
4 |
A. Usually not. For example, if you are passing file name to some database driver (like SQLite), {\bf Qt} usually just passes this name down to the 3rd-\/party library, which is usually does not know anything about {\bf QIODevice} and therefore there is no way to pass \doxyref{QuaZipFile}{p.}{classQuaZipFile} as normal file. However, if we are talking about some place where you pass file name, and then indirectly use {\bf QFile} to open it, then it is a good idea to make overloaded method, which accepts a {\bf QIODevice} pointer. Then you would be able to pass \doxyref{QuaZipFile}{p.}{classQuaZipFile} as well as many other nice things such as {\bf QBuffer} or {\bf QProcess}. |
5 |
|
6 |
\label{faq_faq-zip64} |
7 |
Q. Can QuaZIP handle files larger than 4GB? What about zip64 standard? |
8 |
|
9 |
A. Starting with version 0.6, QuaZIP uses Minizip 1.1 with zip64 support which should handle large files perfectly. The zip64 support in Minizip looks like it's not 100\% conforming to the standard, but 3rd party tools seem to have no problem with the resulting archives. |
10 |
|
11 |
\label{faq_faq-seekable} |
12 |
Q. Can QuaZIP write archives to a sequential {\bf QIODevice} like QTcpSocket? |
13 |
|
14 |
A. Not yet. It is not supported by vanilla Minizip (the back-\/end QuaZIP uses), although theoretically possible according to the ZIP standard. It would require some Minizip modifications that would allow it to detect non-\/seekable I/O and produce necessary output structures. QuaZIP already writes data descriptor which is necessary for non-\/seekable I/O. The only thing that is apparently left is to make Minizip fill local headers with correct values and forget about seeking after closing the file. |