#pragma once #define WIN32_LEAN_AND_MEAN #define NOMINMAX #include #include #include #include #include class FileWatcher { DWORD m_refreshPeriod; std::wstring m_path; std::optional m_lastWrite; std::function m_callback; HANDLE m_abortEvent; std::thread m_thread; std::optional MyFileTime(); void Run(); public: FileWatcher(const std::wstring& path, std::function callback, DWORD refreshPeriod = 1000); ~FileWatcher(); };