| author | David Anderson <dvander@alliedmods.net> |
| Sun Nov 25 04:46:18 2007 +0000 (2007-11-25) | |
| changeset 1722 | 2c16f160f5dd |
| permissions | -rw-r--r-- |
| dvander@1722 | 1 |
#ifndef _INCLUDE_FOLDER_LIST_H_ |
| dvander@1722 | 2 |
#define _INCLUDE_FOLDER_LIST_H_ |
| dvander@1722 | 3 |
|
| dvander@1722 | 4 |
#include "platform_headers.h" |
| dvander@1722 | 5 |
#include <list> |
| dvander@1722 | 6 |
#include <vector> |
| dvander@1722 | 7 |
|
| dvander@1722 | 8 |
struct CFileListEntry |
| dvander@1722 | 9 |
{ |
| dvander@1722 | 10 |
TCHAR file[MAX_PATH]; |
| dvander@1722 | 11 |
unsigned __int64 size; |
| dvander@1722 | 12 |
}; |
| dvander@1722 | 13 |
|
| dvander@1722 | 14 |
class CFileList |
| dvander@1722 | 15 |
{ |
| dvander@1722 | 16 |
public: |
| dvander@1722 | 17 |
CFileList(const TCHAR *name); |
| dvander@1722 | 18 |
~CFileList(); |
| dvander@1722 | 19 |
public: |
| dvander@1722 | 20 |
CFileList *PeekCurrentFolder(); |
| dvander@1722 | 21 |
void PopCurrentFolder(); |
| dvander@1722 | 22 |
const TCHAR *PeekCurrentFile(); |
| dvander@1722 | 23 |
void PopCurrentFile(); |
| dvander@1722 | 24 |
const TCHAR *GetFolderName(); |
| dvander@1722 | 25 |
public: |
| dvander@1722 | 26 |
void AddFolder(CFileList *pFileList); |
| dvander@1722 | 27 |
void AddFile(const TCHAR *name, unsigned __int64 size); |
| dvander@1722 | 28 |
unsigned __int64 GetRecursiveSize(); |
| dvander@1722 | 29 |
public: |
| dvander@1722 | 30 |
static CFileList *BuildFileList(const TCHAR *name, const TCHAR *root_folder); |
| dvander@1722 | 31 |
private: |
| dvander@1722 | 32 |
std::list<CFileList *> m_folder_list; |
| dvander@1722 | 33 |
std::list<CFileListEntry> m_file_list; |
| dvander@1722 | 34 |
TCHAR m_FolderName[MAX_PATH]; |
| dvander@1722 | 35 |
unsigned __int64 m_TotalSize; |
| dvander@1722 | 36 |
unsigned __int64 m_RecursiveSize; |
| dvander@1722 | 37 |
bool m_bGotRecursiveSize; |
| dvander@1722 | 38 |
}; |
| dvander@1722 | 39 |
|
| dvander@1722 | 40 |
#endif //_INCLUDE_FOLDER_LIST_H_ |