C++ Libzip-Archive error始终返回ZIP_ER_OK,即使无法创建归档
我正在使用switch语句检查我正在创建的libzip归档文件中错误代码的值。然而,它似乎永远不会返回除0以外的任何内容,即使我故意使它失败。我试图将文件复制到一个100%已满的usb驱动器,结果导致它失败 我在这里的用法怎么不正确C++ Libzip-Archive error始终返回ZIP_ER_OK,即使无法创建归档,c++,libzip,C++,Libzip,我正在使用switch语句检查我正在创建的libzip归档文件中错误代码的值。然而,它似乎永远不会返回除0以外的任何内容,即使我故意使它失败。我试图将文件复制到一个100%已满的usb驱动器,结果导致它失败 我在这里的用法怎么不正确 int error = 0; zip_t * zip = zip_open(externalDevicePath.c_str(), ZIP_CREATE, &error);
int error = 0;
zip_t * zip = zip_open(externalDevicePath.c_str(), ZIP_CREATE, &error);
zip_add_dir(zip,(institutionId + DIR_SLASH + userId).c_str());
string instAndUserPath = basePath + DIR_SLASH + institutionId + DIR_SLASH + userId;
string stbackupPath = basePath + DIR_SLASH + "STBackups";
ESFileUtilsCommon::addDirectoryToZip(instAndUserPath,zip,(institutionId + DIR_SLASH + userId).c_str());
ESFileUtilsCommon::addDirectoryToZip(stbackupPath,zip,"STBackups");
ESFileUtilsCommon::addDirectoryContentsToZip(basePath, zip);
zip_close(zip);
switch (error){
case ZIP_ER_OK:
mapper.setResult(RESULT_SUCCESS);
retval = CefV8Value::CreateString(mapper.getMappedJsonResponse());
return true;
break;
default:
mapper.setResult(RESULT_FAILURE);
retval = CefV8Value::CreateString(mapper.getMappedJsonResponse());
return false;
break;
}
您尚未提供,因此我们无法测试您的代码。然而,从您在zip_打开很久之后检查错误的事实来看,我认为您对libzip中的错误工作方式感到困惑
传递给zip_open的int错误只对zip_open负责,之后不会出现任何潜在错误。如果您想知道zip_dir_add是否有错误,您需要检查它自己的返回值,请参阅其文档:。您还可以使用zip\u get\u error函数检查最新错误,请参阅文档: