#pragma once #include #include #include #include "../../Library/pcre-8.10/config.h" #include "../../Library/pcre-8.10/pcre.h" namespace PluginFolderInfo { struct FileInfo { std::wstring Name; bool IsFolder; UINT64 Size; FileInfo() { IsFolder = false; Size = 0; } }; class FolderInfo { private: bool mySubFolderFlag; bool myHiddenFileFlag; bool mySystemFileFlag; std::wstring myPath; UINT64 mySize; unsigned int myFileCount; unsigned int myFolderCount; pcre* myRegExpFilter; pcre_extra* myRegExpFilterExtra; DWORD myLastUpdateTime; private: void Clear(); void FreePcre(); void CalculateSize(); void SetPath(const wchar_t* aPath, const wchar_t* aIniPath); public: DWORD GetLastUpdateTime() { return myLastUpdateTime; } void SetRegExpFilter(const wchar_t* aFilter); void IncludeSubFolders(bool aFlag) { mySubFolderFlag = aFlag; } void IncludeHiddenFiles(bool aFlag) { myHiddenFileFlag = aFlag; } void IncludeSystemFiles(bool aFlag) { mySystemFileFlag = aFlag; } UINT64 GetSize() { return mySize; } int GetFileCount() { return myFileCount; } int GetFolderCount() { return myFolderCount; } FolderInfo(const wchar_t* aPath, const wchar_t* aIniPath); ~FolderInfo(); void Update(); }; // class FolderInfo } // namespace PluginFolderInfo