首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用QuaZip解压Mac上的.app

用QuaZip解压Mac上的.app
EN

Stack Overflow用户
提问于 2012-06-29 00:40:57
回答 2查看 796关注 0票数 1

我基本上是在尝试使用QuaZip从压缩文件中提取Mac应用程序。我使用的代码是:

代码语言:javascript
复制
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提取应用程序的简单方法。

我用普通的归档工具解压了它,应用程序正常工作了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-29 00:49:24

我对QuaZip不是特别熟悉,但看起来您似乎是在试图将整个归档解压到一个名为"application.app“的文件中,这是非常严重的错误。应用程序实际上是文件夹,而不是文件-- Finder只显示文件夹(其名称以“.app”结尾),就像它是单个文件一样。

如果您能够找到一个使用QuaZip解压ZIP文件的示例,那么您应该能够在很大程度上不经过修改地使用该代码(可能除了__MACOSX元数据之外)。

票数 4
EN

Stack Overflow用户

发布于 2012-06-29 03:29:58

使用QProcess或system()从您的应用程序中调用解压缩可能会更简单。

代码语言:javascript
复制
unzip -q <path-to-zip> -d <path-to-destionation>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11249204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档