00001 #ifndef FILEINPATH_H_ 00002 #define FILEINPATH_H_ 00003 00004 #include <filesystem> 00005 #include <vector> 00006 00007 00025 class FileInPath { 00026 public: 00032 static void AddLocation(std::filesystem::path const &path); 00033 00048 static std::filesystem::path Resolve(std::filesystem::path const &subDir, 00049 std::filesystem::path const &path); 00050 00057 static std::filesystem::path Resolve(std::filesystem::path const &path); 00058 00059 private: 00067 FileInPath(); 00068 00069 FileInPath(FileInPath const &) = delete; 00070 FileInPath &operator=(FileInPath const &) = delete; 00071 00073 static FileInPath &GetInstance(); 00074 00076 std::vector<std::filesystem::path> locations_; 00077 }; 00078 00079 #endif // FILEINPATH_H_ 00080