Index: src/ch/FileInfo.h =================================================================== diff -u -N -r025757ce5252abbb6dfd81f8f254e419f9520a09 -r41fe62040d243a82461acabdad942307d7c9045f --- src/ch/FileInfo.h (.../FileInfo.h) (revision 025757ce5252abbb6dfd81f8f254e419f9520a09) +++ src/ch/FileInfo.h (.../FileInfo.h) (revision 41fe62040d243a82461acabdad942307d7c9045f) @@ -70,6 +70,10 @@ #define DATE_MODIFIED 1 #define DATE_LASTACCESSED 2 +// CFileInfo flags +// flag stating that file has been processed (used to determine if file can be deleted at the end of copying) +#define FIF_PROCESSED 0x00000001 + class CFileInfo; class CFileFilter @@ -241,6 +245,9 @@ bool IsTemporary(void) const { return (m_dwAttributes & FILE_ATTRIBUTE_TEMPORARY) != 0; }; /** @cmember Returns TRUE if the file is temporary */ bool IsNormal(void) const { return m_dwAttributes == 0; }; /** @cmember Returns TRUE if the file is a normal file */ + uint_t GetFlags() const { return m_uiFlags; } + void SetFlags(uint_t uiFlags, uint_t uiMask = 0xffffffff) { m_uiFlags = (m_uiFlags & ~(uiFlags & uiMask)) | (uiFlags & uiMask); } + // operations void SetClipboard(CClipboardArray *pClipboard) { m_pClipboard=pClipboard; }; CString GetDestinationPath(CString strPath, unsigned char ucCopyNumber, int iFlags); @@ -268,6 +275,7 @@ COleDateTime m_timLastAccess; /** @cmember Last Access time */ COleDateTime m_timLastWrite; /** @cmember Last write time */ + uint_t m_uiFlags; // ptrs to elements providing data CClipboardArray *m_pClipboard; }; @@ -316,28 +324,41 @@ int AddFile(CString strFilePath, int iSrcIndex); // store/restore - void Store(CArchive& ar) + void Store(CArchive& ar, bool bOnlyFlags) { INT_PTR iSize = GetSize(); ar << iSize; for (INT_PTR i=0;i>iSize; SetSize(iSize, 5000); CFileInfo fi; fi.SetClipboard(m_pClipboard); + uint_t uiFlags = 0; for (INT_PTR i=0;i> uiFlags; + rInfo.SetFlags(uiFlags); + } + else + { + fi.Load(ar); + SetAt(i, fi); + } } }