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 を呼び出している im と比較すると、私にとってはうまくいくと言ったようにこれを試すことができます。私は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 に答える