taritem.h

来自「由7-zip提供的压缩、解压缩程序」· C头文件 代码 · 共 70 行

H
70
字号
// Archive/Tar/Item.h#ifndef __ARCHIVE_TAR_ITEM_H#define __ARCHIVE_TAR_ITEM_H#include <time.h>#include "Common/Types.h"#include "Common/String.h"#include "../Common/ItemNameUtils.h"#include "TarHeader.h"namespace NArchive {namespace NTar {class CItem{public:  AString Name;  UInt32 Mode;  UInt32 UID;  UInt32 GID;  UInt64 Size;  UInt32 ModificationTime;  char LinkFlag;  AString LinkName;  char Magic[8];  AString UserName;  AString GroupName;  bool DeviceMajorDefined;  UInt32 DeviceMajor;  bool DeviceMinorDefined;  UInt32 DeviceMinor;  bool IsDirectory() const     {        if (LinkFlag == NFileHeader::NLinkFlag::kDirectory)        return true;      if (LinkFlag == NFileHeader::NLinkFlag::kOldNormal ||           LinkFlag == NFileHeader::NLinkFlag::kNormal)      {        return NItemName::HasTailSlash(Name, CP_OEMCP);      }      return false;    }  bool IsMagic() const   {      for (int i = 0; i < 5; i++)      if (Magic[i] != NFileHeader::NMagic::kUsTar[i])        return false;    return true;  }};class CItemEx: public CItem{public:  UInt64 HeaderPosition;  UInt64 LongLinkSize;  UInt64 GetDataPosition() const { return HeaderPosition + LongLinkSize + NFileHeader::kRecordSize; };  UInt64 GetFullSize() const { return LongLinkSize + NFileHeader::kRecordSize + Size; };};}}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?