Минизип создания пустых файлов zip - PullRequest
0 голосов
/ 15 марта 2019

Я работаю над проектом, который нуждается в создании файла zip.Я использую библиотеку Minizip для этого, однако, файл Zip, который генерируется, пуст.Вот моя функция

    int compress(std::vector<std::string> paths, std::string &destination, const std::string& password, int level) {
    if (level < CS_NO_COMPRESSION || level > CS_BEST_COMPRESSION)
        level = MZ_COMPRESS_LEVEL_DEFAULT;
    void *writer = NULL;
    int err;
    mz_zip_writer_create(&writer);
    mz_zip_writer_set_password(writer, password.c_str());
    mz_zip_writer_set_compress_level(writer, level);
    mz_zip_writer_set_compress_method(writer, MZ_COMPRESS_METHOD_DEFLATE);
    err = mz_zip_writer_open_file(writer, destination.c_str(), originalSize, 0);
    if (err < 0) {
        std::cout << err;
        mz_zip_writer_delete(&writer);
        return err;
    }

    if(err == MZ_OK){
        for (std::string path : paths)
        {
            std::string fileName = path.substr(path.rfind('\\'));
            err = mz_zip_writer_add_path(writer, path.c_str(), NULL, 1, 1);
            if (err < 0)
                return err;
        }
    }
    err = mz_zip_writer_close(writer);
    mz_zip_writer_delete(&writer);
    return err;
}

entry point:

std::vector<std::string> src;
src.push_back("C:\\dev\CompressStudio\\CMakeFiles.txt");
std::string res = "C:\\dev\\CMakeFiles.zip";
int err = compress(src, res); // Password and level have default vaues as NULL and -1 respectively
std::cin.ignore();
return err;

Программа завершается с -111 Любая помощь будет принята с благодарностью

...