C++ 使用zlib解压而不使用SetCurrentDirectory
我正在用它来解压zip文件列表。下面是一个简单的方法。但是C++ 使用zlib解压而不使用SetCurrentDirectory,c++,zip,C++,Zip,我正在用它来解压zip文件列表。下面是一个简单的方法。但是SetCurrentDirectory函数调用会影响我的其他线程。有没有办法用zlib解压到特定的目录 SetCurrentDirectory("c:\\docs\\stuff"); HZIP hz = OpenZip("c:\\stuff.zip",0); ZIPENTRY ze; GetZipItem(hz,-1,&ze); int numitems=ze.index; for (int i=0; i<numitems;
SetCurrentDirectory
函数调用会影响我的其他线程。有没有办法用zlib解压到特定的目录
SetCurrentDirectory("c:\\docs\\stuff");
HZIP hz = OpenZip("c:\\stuff.zip",0);
ZIPENTRY ze; GetZipItem(hz,-1,&ze); int numitems=ze.index;
for (int i=0; i<numitems; i++)
{ GetZipItem(hz,i,&ze);
UnzipItem(hz,i,ze.name);
}
CloseZip(hz);
SetCurrentDirectory(“c:\\docs\\stuff”);
HZIP hz=OpenZip(“c:\\stuff.zip”,0);
紫丁香;GetZipItem(hz,-1,&ze);int numitems=ze.index;
对于(int i=0;i ),您有一个包装器,允许使用ZLIB库。您已经将问题标记为C++,您使用的是C++的包装器,同时使用的是全局助手API,使用这个包装器。
我建议您直接使用TUnzip包装(请参见如何实现内部作为示例)。TUnzip类有一个很好的方法,允许设置基本目录ZRESULT TUnzip::SetUnzipBaseDir(const TCHAR*dir)
。调用它设置目录找到解决方案
void unZipPackage(std::wstring zip_file,std::wstring dest_dir){
HZIP hz = OpenZip(zip_file.c_str(),0);
ZIPENTRY ze; GetZipItem(hz,-1,&ze); int numitems=ze.index;
for (int i=0; i<numitems; i++)
{
GetZipItem(hz,i,&ze);
wchar_t dest[MAX_PATH];
swprintf(dest,MAX_PATH,L"%s\\%s",dest_dir.c_str(),ze.name);
UnzipItem(hz,i,dest);
}
CloseZip(hz);
}
void解压包(std::wstring zip_文件,std::wstring dest_dir){
HZIP hz=OpenZip(zip_file.c_str(),0);
ZIPENTRY ze;GetZipItem(hz,-1,&ze);int numitems=ze.index;
例如(inti=0;iit看起来不像zlib。手册()中没有您示例中的函数。我经常使用zlib,但从未设置currentdirectory()@cha:这是确切的源文件。实际上我不知道这不是zlib。但是我不能更改库,因为我正在对现有项目进行一些更改。无论如何,它帮助您的评论找到了答案。谢谢。