mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-10 18:05:41 +08:00
OdfFormatWriter - encrypted
This commit is contained in:
@ -52,12 +52,12 @@ HRESULT COfficeUtils::ExtractToDirectory(const std::wstring& zipFile, const std:
|
||||
}
|
||||
|
||||
|
||||
HRESULT COfficeUtils::CompressFileOrDirectory(const std::wstring& name, const std::wstring& outputFile, bool bSorted, short level)
|
||||
HRESULT COfficeUtils::CompressFileOrDirectory(const std::wstring& name, const std::wstring& outputFile, bool bSorted, int method, short level)
|
||||
{
|
||||
HRESULT result = S_FALSE;
|
||||
if(NSDirectory::Exists(name))
|
||||
{
|
||||
if ( ZLibZipUtils::ZipDir( name.c_str(), outputFile.c_str(), m_fCallback, bSorted, level ) == 0 )
|
||||
if ( ZLibZipUtils::ZipDir( name.c_str(), outputFile.c_str(), m_fCallback, bSorted, method, level ) == 0 )
|
||||
{
|
||||
result = S_OK;
|
||||
}
|
||||
@ -68,7 +68,7 @@ HRESULT COfficeUtils::CompressFileOrDirectory(const std::wstring& name, const st
|
||||
}
|
||||
else if(NSFile::CFileBinary::Exists(name))
|
||||
{
|
||||
if ( ZLibZipUtils::ZipFile( name.c_str(), outputFile.c_str(), level ) == 0 )
|
||||
if ( ZLibZipUtils::ZipFile( name.c_str(), outputFile.c_str(), method, level ) == 0 )
|
||||
{
|
||||
result = S_OK;
|
||||
}
|
||||
|
||||
@ -35,6 +35,10 @@
|
||||
#include "OfficeUtilsCommon.h"
|
||||
#include "../../Common/kernel_config.h"
|
||||
|
||||
#ifndef Z_DEFLATED
|
||||
#define Z_DEFLATED 8
|
||||
#endif
|
||||
|
||||
class KERNEL_DECL COfficeUtils
|
||||
{
|
||||
private:
|
||||
@ -43,7 +47,7 @@ public:
|
||||
COfficeUtils(OnProgressCallback* bCallback = NULL);
|
||||
|
||||
HRESULT ExtractToDirectory (const std::wstring& zipFile, const std::wstring& unzipDir, wchar_t* password, short extract_without_path);
|
||||
HRESULT CompressFileOrDirectory (const std::wstring& name, const std::wstring& outputFile, bool bSorted = false, short level = -1);
|
||||
HRESULT CompressFileOrDirectory (const std::wstring& name, const std::wstring& outputFile, bool bSorted = false, int method = Z_DEFLATED, short level = -1);
|
||||
|
||||
HRESULT Uncompress (BYTE* destBuf, ULONG* destSize, BYTE* sourceBuf, ULONG sourceSize);
|
||||
HRESULT Compress (BYTE* destBuf, ULONG* destSize, BYTE* sourceBuf, ULONG sourceSize, short level = -1);
|
||||
|
||||
@ -522,7 +522,7 @@ int oneZipFile(zipFile & zf, zip_fileinfo & zi, std::wstring & file_name, std::w
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
int ZipDir( const WCHAR* dir, const WCHAR* outputFile, const OnProgressCallback* progress, bool sorted, int compressionLevel )
|
||||
int ZipDir( const WCHAR* dir, const WCHAR* outputFile, const OnProgressCallback* progress, bool sorted, int method, int compressionLevel )
|
||||
{
|
||||
if ( ( dir != NULL ) && ( outputFile != NULL ) )
|
||||
{
|
||||
@ -608,7 +608,7 @@ int ZipDir( const WCHAR* dir, const WCHAR* outputFile, const OnProgressCallback*
|
||||
file = NSSystemPath::Combine(szText, cFileName);
|
||||
zipFileName = zipDir + cFileName;
|
||||
|
||||
oneZipFile(zf, zi, file, zipFileName, Z_DEFLATED, compressionLevel);
|
||||
oneZipFile(zf, zi, file, zipFileName, method, compressionLevel);
|
||||
|
||||
if ( progress != NULL )
|
||||
{
|
||||
@ -641,7 +641,7 @@ int ZipDir( const WCHAR* dir, const WCHAR* outputFile, const OnProgressCallback*
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
int ZipFile( const WCHAR* inputFile, const WCHAR* outputFile, int compressionLevel )
|
||||
int ZipFile( const WCHAR* inputFile, const WCHAR* outputFile, int method, int compressionLevel )
|
||||
{
|
||||
int err = -1;
|
||||
|
||||
@ -695,7 +695,7 @@ int ZipDir( const WCHAR* dir, const WCHAR* outputFile, const OnProgressCallback*
|
||||
zipFileName = wstring( inputFileName.begin(), inputFileName.end() );
|
||||
}
|
||||
std::string zipFileNameA = codepage_issue_fixToOEM(zipFileName);
|
||||
err = zipOpenNewFileInZip( zf, zipFileNameA.c_str(), &zi, NULL, 0, NULL, 0, NULL, Z_DEFLATED, compressionLevel );
|
||||
err = zipOpenNewFileInZip( zf, zipFileNameA.c_str(), &zi, NULL, 0, NULL, 0, NULL, method, compressionLevel );
|
||||
err = zipWriteInFileInZip( zf, pData, dwSizeRead );
|
||||
err = zipCloseFileInZip( zf );
|
||||
err = zipClose( zf, NULL );
|
||||
|
||||
@ -54,8 +54,8 @@ using namespace std;
|
||||
|
||||
namespace ZLibZipUtils
|
||||
{
|
||||
int ZipDir( const WCHAR* dir, const WCHAR* outputFile, const OnProgressCallback* progress, bool sorted = false , int compressionLevel = -1);
|
||||
int ZipFile( const WCHAR* inputFile, const WCHAR* outputFile, int compressionLevel = -1 );
|
||||
int ZipDir( const WCHAR* dir, const WCHAR* outputFile, const OnProgressCallback* progress, bool sorted = false, int method = Z_DEFLATED, int compressionLevel = -1);
|
||||
int ZipFile( const WCHAR* inputFile, const WCHAR* outputFile, int method = Z_DEFLATED, int compressionLevel = -1 );
|
||||
bool ClearDirectory( const WCHAR* dir, bool delDir = false );
|
||||
int UnzipToDir( const WCHAR* zipFile, const WCHAR* unzipDir, const OnProgressCallback* progress, const WCHAR* password = NULL, bool opt_extract_without_path = false, bool clearOutputDirectory = false );
|
||||
int UncompressBytes( BYTE* destBuf, ULONG* destSize, const BYTE* sourceBuf, ULONG sourceSize );
|
||||
|
||||
Reference in New Issue
Block a user