mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
85 lines
1.3 KiB
C++
85 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
#include <windows.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 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);
|
|
void Update();
|
|
}; // class FolderInfo
|
|
|
|
} // namespace PluginFolderInfo
|