| // DirItem.h |
| |
| #ifndef __DIR_ITEM_H |
| #define __DIR_ITEM_H |
| |
| #include "Common/MyString.h" |
| #include "Common/Types.h" |
| #include "../../Archive/IArchive.h" |
| |
| struct CDirItem |
| { |
| UInt64 Size; |
| FILETIME CTime; |
| FILETIME ATime; |
| FILETIME MTime; |
| UString Name; |
| UInt32 Attrib; |
| int PhyParent; |
| int LogParent; |
| |
| CDirItem(): PhyParent(-1), LogParent(-1) {} |
| bool IsDir() const { return (Attrib & FILE_ATTRIBUTE_DIRECTORY) != 0 ; } |
| }; |
| |
| class CDirItems |
| { |
| UStringVector Prefixes; |
| CIntVector PhyParents; |
| CIntVector LogParents; |
| |
| UString GetPrefixesPath(const CIntVector &parents, int index, const UString &name) const; |
| public: |
| CObjectVector<CDirItem> Items; |
| |
| int GetNumFolders() const { return Prefixes.Size(); } |
| UString GetPhyPath(int index) const; |
| UString GetLogPath(int index) const; |
| |
| int AddPrefix(int phyParent, int logParent, const UString &prefix); |
| void DeleteLastPrefix(); |
| |
| void EnumerateDirectory(int phyParent, int logParent, const UString &phyPrefix, |
| UStringVector &errorPaths, CRecordVector<DWORD> &errorCodes); |
| |
| void EnumerateDirItems2( |
| const UString &phyPrefix, |
| const UString &logPrefix, |
| const UStringVector &filePaths, |
| UStringVector &errorPaths, CRecordVector<DWORD> &errorCodes); |
| |
| void ReserveDown(); |
| }; |
| |
| struct CArcItem |
| { |
| UInt64 Size; |
| FILETIME MTime; |
| UString Name; |
| bool IsDir; |
| bool SizeDefined; |
| bool MTimeDefined; |
| bool Censored; |
| UInt32 IndexInServer; |
| int TimeType; |
| |
| CArcItem(): IsDir(false), SizeDefined(false), MTimeDefined(false), Censored(false), TimeType(-1) {} |
| }; |
| |
| #endif |