EDN Admin
Well-known member
<br/>
By using the below sample code, tried to extract a zip file having size more than 2.5 GB(contains 6 folders in it). But the get_count is returning only 3 as number of files in it and extracting only 3 files. Can anyone please through some light here or suggest
any other VC++ or C++ library for zip file( size greater than 2GB) decompression. Thanks in advance.<br/>
<br/>
bool Unzip2Folder( BSTR lpZipFile, BSTR lpFolder)<br/>
{<br/>
<span style="white-space
re IShellDispatch *pISD;<br/>
<br/>
<span style="white-space
re Folder *pZippedFile = 0L;<br/>
<span style="white-space
re Folder *pDestination = 0L;<br/>
<br/>
<span style="white-space
re long FilesCount = 0;<br/>
<span style="white-space
re IDispatch* pItem = 0L;<br/>
<span style="white-space
re FolderItems *pFilesInside = 0L;<br/>
<br/>
<span style="white-space
re VARIANT Options, OutFolder, InZipFile, Item;<br/>
<span style="white-space
re CoInitialize( NULL);<br/>
<span style="white-space
re __try{<br/>
<span style="white-space
re if (CoCreateInstance(CLSID_Shell, NULL, CLSCTX_INPROC_SERVER, IID_IShellDispatch, (void **)&pISD) != S_OK)<br/>
<span style="white-space
re return 1;<br/>
<br/>
<span style="white-space
re InZipFile.vt = VT_BSTR;<br/>
<span style="white-space
re InZipFile.bstrVal = lpZipFile;<br/>
<span style="white-space
re pISD->NameSpace( InZipFile, &pZippedFile);<br/>
<span style="white-space
re if (!pZippedFile)<br/>
<span style="white-space
re {<br/>
<span style="white-space
re pISD->Release();<br/>
<span style="white-space
re return 1;<br/>
<span style="white-space
re }<br/>
<br/>
<span style="white-space
re OutFolder.vt = VT_BSTR;<br/>
<span style="white-space
re OutFolder.bstrVal = lpFolder;<br/>
<span style="white-space
re pISD->NameSpace( OutFolder, &pDestination);<br/>
<span style="white-space
re if(!pDestination)<br/>
<span style="white-space
re {<br/>
<span style="white-space
re pZippedFile->Release();<br/>
<span style="white-space
re pISD->Release();<br/>
<span style="white-space
re return 1;<br/>
<span style="white-space
re }<br/>
<br/>
<span style="white-space
re pZippedFile->Items(&pFilesInside);<br/>
<span style="white-space
re if(!pFilesInside)<br/>
<span style="white-space
re {<br/>
<span style="white-space
re pDestination->Release();<br/>
<span style="white-space
re pZippedFile->Release();<br/>
<span style="white-space
re pISD->Release();<br/>
<span style="white-space
re return 1;<br/>
<span style="white-space
re }<br/>
<span style="white-space
re <br/>
<span style="white-space
re pFilesInside->get_Count( &FilesCount);<br/>
<span style="white-space
re if( FilesCount < 1)<br/>
<span style="white-space
re {<br/>
<span style="white-space
re pFilesInside->Release();<br/>
<span style="white-space
re pDestination->Release();<br/>
<span style="white-space
re pZippedFile->Release();<br/>
<span style="white-space
re pISD->Release();<br/>
<span style="white-space
re return 0;<br/>
<span style="white-space
re }<br/>
<br/>
<span style="white-space
re pFilesInside->QueryInterface(IID_IDispatch,(void**)&pItem);<br/>
<br/>
<span style="white-space
re Item.vt = VT_DISPATCH;<br/>
<span style="white-space
re Item.pdispVal = pItem;<br/>
<br/>
<span style="white-space
re Options.vt = VT_I4;<br/>
<span style="white-space
re Options.lVal = 1024 | 512 | 16 | 4;//http://msdn.microsoft.com/en-us/library/bb787866(VS.85).aspx<br/>
<br/>
<span style="white-space
re bool retval = pDestination->CopyHere( Item, Options) == S_OK;<br/>
<br/>
<span style="white-space
re pItem->Release();pItem = 0L;<br/>
<span style="white-space
re pFilesInside->Release();pFilesInside = 0L;<br/>
<span style="white-space
re pDestination->Release();pDestination = 0L;<br/>
<span style="white-space
re pZippedFile->Release();pZippedFile = 0L;<br/>
<span style="white-space
re pISD->Release();pISD = 0L;<br/>
<br/>
<span style="white-space
re return retval;<br/>
<br/>
<span style="white-space
re }__finally <br/>
<span style="white-space
re {<br/>
<span style="white-space
re CoUninitialize();<br/>
<span style="white-space
re }<br/>
}
View the full article
By using the below sample code, tried to extract a zip file having size more than 2.5 GB(contains 6 folders in it). But the get_count is returning only 3 as number of files in it and extracting only 3 files. Can anyone please through some light here or suggest
any other VC++ or C++ library for zip file( size greater than 2GB) decompression. Thanks in advance.<br/>
<br/>
bool Unzip2Folder( BSTR lpZipFile, BSTR lpFolder)<br/>
{<br/>
<span style="white-space

<br/>
<span style="white-space

<span style="white-space

<br/>
<span style="white-space

<span style="white-space

<span style="white-space

<br/>
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<br/>
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<br/>
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<br/>
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<br/>
<span style="white-space

<br/>
<span style="white-space

<span style="white-space

<br/>
<span style="white-space

<span style="white-space

<br/>
<span style="white-space

<br/>
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<br/>
<span style="white-space

<br/>
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

}
View the full article