|
|
- #pragma once
-
- #include "SevenZipLibrary.h"
- #include <atlbase.h>
- #include "FileInfo.h"
- #include "CompressionFormat.h"
- #include "CompressionLevel.h"
-
- namespace SevenZip
- {
- class SevenZipArchive
- {
- public:
- SevenZipArchive(const SevenZipLibrary& library, const TString& archivePath);
- virtual ~SevenZipArchive();
-
- virtual bool ReadInArchiveMetadata();
-
- virtual void SetCompressionFormat(const CompressionFormatEnum& format);
- virtual CompressionFormatEnum GetCompressionFormat();
-
- virtual void SetCompressionLevel(const CompressionLevelEnum& level);
- virtual CompressionLevelEnum GetCompressionLevel();
-
- virtual bool DetectCompressionFormat();
-
- virtual size_t GetNumberOfItems();
- virtual std::vector<TString> GetItemsNames();
- virtual std::vector<size_t> GetOrigSizes();
-
- protected:
- bool m_ReadMetadata = false;
- bool m_OverrideCompressionFormat = false;
- const SevenZipLibrary& m_library;
- TString m_archivePath;
- CompressionFormatEnum m_compressionFormat;
- CompressionLevelEnum m_compressionLevel;
- size_t m_numberofitems = 0;
- std::vector<TString> m_itemnames;
- std::vector<size_t> m_origsizes;
-
- private:
- bool pri_GetNumberOfItems();
- bool pri_GetItemsNames();
- bool pri_DetectCompressionFormat(CompressionFormatEnum & format);
- bool pri_DetectCompressionFormat();
- };
- }
|