0

我正在尝试在我的 Qt 5.4 项目中使用 Quazip 0.7.1(在同一台机器上使用 clang 编译 Qt 5.4)来压缩存档中的文件。该代码在使用 MSVC 2012 编译器的 Windows 上运行良好,但是相同的代码在 Mac OSX 上崩溃并出现错误QIODevice::open file access not specified。下面是我的代码片段。

bool Utils::Archive(QList<QString> arrFiles, QString strFileName)
{
    QFile zipFile(strFileName);
    QuaZip zip(&zipFile);

    // CODE CRASHES HERE
    if(!zip.open(QuaZip::mdAppend))
    {
      qWarning("testCreate(): zip.open(): %d", zip.getZipError());
      return false;
    }

代码在 zip.open 调用时崩溃。任何建议/想法将不胜感激。谢谢

4

1 回答 1

0

好吧,这是我的代码,它工作得很好,并且通过将它与你在 Quazip 文件之前对 Quazip 对象调用 open 进行比较,也许可以尝试这个,就像我说它对我有用。我正在使用 mdCreate 但我确定这也适用于 mdappend

// Create new zip file to store the file.
auto zip_file(new QuaZip(file_path.string().c_str()));
if(zip_file->open(QuaZip::mdCreate))
{
    QuaZipFile file(zip_file);

    if(file.open(QIODevice::WriteOnly, QuaZipNewInfo("something.xml")) == false)
    {
         // Error
    }
    else
    {
        // Do stuff...
    }
于 2015-09-02T13:06:07.437 回答