繁体   English   中英

在Mac上使用QuaZip提取.app

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM