![](/img/trans.png)
[英]Quazip throws an error on Mac 10.9, Qt 5.4 and clang(64 bit)
[英]Extracting .app on Mac with QuaZip
我基本上是想使用QuaZip从zip文件中提取Mac应用程序。 我使用的代码是:
QuaZip zip("file.zip");
qDebug() << zip.open(QuaZip::mdUnzip);
QuaZipFile file(&zip);
QFile out("application.app");
out.open(QIODevice::WriteOnly);
for(bool f=zip.goToFirstFile(); f; f=zip.goToNextFile()) {
file.open(QIODevice::ReadOnly);
//same functionality as QIODevice::readData() -- data is a char*, maxSize is qint64
char c;
while (file.getChar(&c)) out.putChar(c);
file.close();
}
out.flush();
out.close();
zip.close();
如果我尝试启动提取的应用程序,则会收到一条错误消息,提示“我无法打开该应用程序,因为不再支持Classic-Environment”。 我试图使.app可执行文件,但仍然无法正常工作。 我不知道使用Qt提取应用程序的任何其他简便方法。
我使用普通存档程序将其提取,并且该应用程序正常运行。
我对QuaZip并不十分熟悉,但是似乎您正在尝试将整个存档提取到一个名为“ application.app”的文件中,这是非常错误的。 应用程序实际上是文件夹,而不是文件-Finder仅显示文件夹(其名称以“ .app”结尾),就好像它是单个文件一样。
如果您可以找到使用QuaZip提取ZIP文件的示例,则应该能够使用未经修改的代码(可能是__MACOSX元数据)。
使用QProcess或system()从应用程序中调用解压缩可能会更容易。
unzip -q <path-to-zip> -d <path-to-destionation>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.