dvander@1722: #ifndef _INCLUDE_FOLDER_LIST_H_ dvander@1722: #define _INCLUDE_FOLDER_LIST_H_ dvander@1722: dvander@1722: #include "platform_headers.h" dvander@1722: #include dvander@1722: #include dvander@1722: dvander@1722: struct CFileListEntry dvander@1722: { dvander@1722: TCHAR file[MAX_PATH]; dvander@1722: unsigned __int64 size; dvander@1722: }; dvander@1722: dvander@1722: class CFileList dvander@1722: { dvander@1722: public: dvander@1722: CFileList(const TCHAR *name); dvander@1722: ~CFileList(); dvander@1722: public: dvander@1722: CFileList *PeekCurrentFolder(); dvander@1722: void PopCurrentFolder(); dvander@1722: const TCHAR *PeekCurrentFile(); dvander@1722: void PopCurrentFile(); dvander@1722: const TCHAR *GetFolderName(); dvander@1722: public: dvander@1722: void AddFolder(CFileList *pFileList); dvander@1722: void AddFile(const TCHAR *name, unsigned __int64 size); dvander@1722: unsigned __int64 GetRecursiveSize(); dvander@1722: public: dvander@1722: static CFileList *BuildFileList(const TCHAR *name, const TCHAR *root_folder); dvander@1722: private: dvander@1722: std::list m_folder_list; dvander@1722: std::list m_file_list; dvander@1722: TCHAR m_FolderName[MAX_PATH]; dvander@1722: unsigned __int64 m_TotalSize; dvander@1722: unsigned __int64 m_RecursiveSize; dvander@1722: bool m_bGotRecursiveSize; dvander@1722: }; dvander@1722: dvander@1722: #endif //_INCLUDE_FOLDER_LIST_H_