// RarItem.cpp #include "StdAfx.h" #include "RarItem.h" namespace NArchive{ namespace NRar{ bool CItem::IgnoreItem() const { switch(HostOS) { case NHeader::NFile::kHostMSDOS: case NHeader::NFile::kHostOS2: case NHeader::NFile::kHostWin32: return ((Attrib & NHeader::NFile::kLabelFileAttribute) != 0); } return false; } bool CItem::IsDir() const { if (GetDictSize() == NHeader::NFile::kDictDirectoryValue) return true; switch(HostOS) { case NHeader::NFile::kHostMSDOS: case NHeader::NFile::kHostOS2: case NHeader::NFile::kHostWin32: if ((Attrib & FILE_ATTRIBUTE_DIRECTORY) != 0) return true; } return false; } UInt32 CItem::GetWinAttributes() const { UInt32 winAttributes; switch(HostOS) { case NHeader::NFile::kHostMSDOS: case NHeader::NFile::kHostOS2: case NHeader::NFile::kHostWin32: winAttributes = Attrib; break; default: winAttributes = 0; // must be converted from unix value; } if (IsDir()) winAttributes |= NHeader::NFile::kWinFileDirectoryAttributeMask; return winAttributes; } }}