3 #ifndef __ARCHIVE_CAB_ITEM_H
\r
4 #define __ARCHIVE_CAB_ITEM_H
\r
6 #include "Common/Types.h"
\r
7 #include "Common/MyString.h"
\r
8 #include "CabHeader.h"
\r
10 namespace NArchive {
\r
15 UInt32 DataStart; // offset of the first CFDATA block in this folder
\r
16 UInt16 NumDataBlocks; // number of CFDATA blocks in this folder
\r
17 Byte CompressionTypeMajor;
\r
18 Byte CompressionTypeMinor;
\r
19 Byte GetCompressionMethod() const { return (Byte)(CompressionTypeMajor & 0xF); }
\r
32 UInt64 GetEndOffset() const { return (UInt64)Offset + Size; }
\r
33 UInt32 GetWinAttributes() const { return (Attributes & ~NHeader::kFileNameIsUTFAttributeMask); }
\r
34 bool IsNameUTF() const { return (Attributes & NHeader::kFileNameIsUTFAttributeMask) != 0; }
\r
35 bool IsDir() const { return (Attributes & FILE_ATTRIBUTE_DIRECTORY) != 0; }
\r
37 bool ContinuedFromPrev() const
\r
40 (FolderIndex == NHeader::NFolderIndex::kContinuedFromPrev) ||
\r
41 (FolderIndex == NHeader::NFolderIndex::kContinuedPrevAndNext);
\r
44 bool ContinuedToNext() const
\r
47 (FolderIndex == NHeader::NFolderIndex::kContinuedToNext) ||
\r
48 (FolderIndex == NHeader::NFolderIndex::kContinuedPrevAndNext);
\r
51 int GetFolderIndex(int numFolders) const
\r
53 if (ContinuedFromPrev())
\r
55 if (ContinuedToNext())
\r
56 return (numFolders - 1);
\r