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