Index: src/libchcore/TFakeFilesystemFind.h
===================================================================
diff -u -N -r5efb534fc5440a7ab779d2514a00486ecb58e845 -r27c262eb9cae55720e10f4886af6b5a82cb94fe9
--- src/libchcore/TFakeFilesystemFind.h	(.../TFakeFilesystemFind.h)	(revision 5efb534fc5440a7ab779d2514a00486ecb58e845)
+++ src/libchcore/TFakeFilesystemFind.h	(.../TFakeFilesystemFind.h)	(revision 27c262eb9cae55720e10f4886af6b5a82cb94fe9)
@@ -20,19 +20,37 @@
 #define __TFAKEFILESYSTEMFIND_H__
 
 #include "libchcore.h"
+#include "IFilesystemFind.h"
+#include "TPath.h"
 
-BEGIN_CHCORE_NAMESPACE
-
-class LIBCHCORE_API TFakeFilesystemFind
+namespace chcore
 {
-public:
-	TFakeFilesystemFind();
-	~TFakeFilesystemFind();
+	class TFakeFilesystem;
 
-private:
+	class LIBCHCORE_API TFakeFilesystemFind : public IFilesystemFind
+	{
+	public:
+		TFakeFilesystemFind(const TSmartPath& pathDir, const TSmartPath& pathMask, TFakeFilesystem* pFakeFilesystem);
+		~TFakeFilesystemFind();
 
-};
+		virtual bool FindNext(TFileInfoPtr& rspFileInfo) override;
+		virtual void Close() override;
 
-END_CHCORE_NAMESPACE
+	private:
+		void Prescan();
 
+	private:
+		TSmartPath m_pathDir;
+		TSmartPath m_pathMask;
+		TFakeFilesystem* m_pFilesystem;
+
+#pragma warning(push)
+#pragma warning(disable: 4251)
+		bool m_bScanned = false;
+		std::vector<TFileInfo> m_vItems;
+		std::vector<TFileInfo>::iterator m_iterCurrent;
+#pragma warning(pop)
+	};
+}
+
 #endif