DirItem.h revision baa3858d3f5d128a5c8466b700098109edcad5f2
1// DirItem.h 2 3#ifndef __DIR_ITEM_H 4#define __DIR_ITEM_H 5 6#include "Common/MyString.h" 7#include "Common/Types.h" 8#include "../../Archive/IArchive.h" 9 10struct CDirItem 11{ 12 UInt64 Size; 13 FILETIME CTime; 14 FILETIME ATime; 15 FILETIME MTime; 16 UString Name; 17 UInt32 Attrib; 18 int PhyParent; 19 int LogParent; 20 21 CDirItem(): PhyParent(-1), LogParent(-1) {} 22 bool IsDir() const { return (Attrib & FILE_ATTRIBUTE_DIRECTORY) != 0 ; } 23}; 24 25class CDirItems 26{ 27 UStringVector Prefixes; 28 CIntVector PhyParents; 29 CIntVector LogParents; 30 31 UString GetPrefixesPath(const CIntVector &parents, int index, const UString &name) const; 32public: 33 CObjectVector<CDirItem> Items; 34 35 int GetNumFolders() const { return Prefixes.Size(); } 36 UString GetPhyPath(int index) const; 37 UString GetLogPath(int index) const; 38 39 int AddPrefix(int phyParent, int logParent, const UString &prefix); 40 void DeleteLastPrefix(); 41 42 void EnumerateDirectory(int phyParent, int logParent, const UString &phyPrefix, 43 UStringVector &errorPaths, CRecordVector<DWORD> &errorCodes); 44 45 void EnumerateDirItems2( 46 const UString &phyPrefix, 47 const UString &logPrefix, 48 const UStringVector &filePaths, 49 UStringVector &errorPaths, CRecordVector<DWORD> &errorCodes); 50 51 void ReserveDown(); 52}; 53 54struct CArcItem 55{ 56 UInt64 Size; 57 FILETIME MTime; 58 UString Name; 59 bool IsDir; 60 bool SizeDefined; 61 bool MTimeDefined; 62 bool Censored; 63 UInt32 IndexInServer; 64 int TimeType; 65 66 CArcItem(): IsDir(false), SizeDefined(false), MTimeDefined(false), Censored(false), TimeType(-1) {} 67}; 68 69#endif 70