对于文件的压缩息争压是我们日常工作耳熟能详的使用,那么我们如何自己通过代码来实现各种文件的压缩息争压,本文是笔者整理和精炼的的7zipSDK,支持zip,rar,7zip,tar,xz等常见格式的压缩息争压,接口友好,demo简单,特意收藏,以备不时之需。
压缩例子如下:
[code]#include #include#include "7zpp.h"#define DLL_PATH _T("C:\\Program Files\\7-Zip\\7z.dll")#define TESTCOMPRESSTESTFILE1 _T("TestFiles\\Readme.md")#define TESTEXTRACTTESTFILE2 _T("TestFiles\\dir")#define ARCHIVE_NAME1 _T("MyArchive")using namespace std;using namespace SevenZip;void comprese_file(SevenZip::CompressionFormat::_Enum fmt){ SevenZip::SevenZipLibrary lib; bool result = lib.Load(SevenZip::TString(DLL_PATH)); // Make sure DLL loads if (!result) { printf("load dll is failed\n"); } printf("CompressionFormat is %d\n", fmt); SevenZip::TString myArchive(ARCHIVE_NAME1); SevenZip::SevenZipCompressor compressor(lib, myArchive); compressor.SetCompressionFormat(fmt); compressor.SetPassword(_T("test")); bool addResult = compressor.AddFile(TESTCOMPRESSTESTFILE1); if (!result) { printf("AddFile is failed\n"); } // add files by mask non recursive in folder where no files with this mask addResult = compressor.AddFiles(TESTEXTRACTTESTFILE2, _T("*.h"), false); if (!result) { printf("AddFile2 is failed\n"); } addResult = compressor.AddFiles(TESTEXTRACTTESTFILE2, _T("*.h"), true); if (!result) { printf("AddFile3 is failed\n"); } bool compressResult = compressor.DoCompress(); if (!result) { printf("AddFile4 is failed\n"); } getchar();}int main(){ std::cout |