X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;ds=sidebyside;f=Source%2FUtils%2FFolders.h;h=495f149bb080c5a2c8bcdd0cd15c703254f51a49;hb=e8886f08acfcbec9dbe361df12cff7ef96005a0e;hp=0343b6c2d4923578a436cae24a7a08b9947270d0;hpb=c46fa74abc1cd0a50799d979049631abc8b28d00;p=lugaru.git diff --git a/Source/Utils/Folders.h b/Source/Utils/Folders.h index 0343b6c..495f149 100644 --- a/Source/Utils/Folders.h +++ b/Source/Utils/Folders.h @@ -23,10 +23,22 @@ along with Lugaru. If not, see . #include -#ifndef DATADIR -#define DATADIR "Data" +#ifndef DATA_DIR +#define DATA_DIR "Data" #endif +struct FileNotFoundException: public std::exception +{ + std::string errorText; + FileNotFoundException (const std::string& filename) { + errorText = filename + " could not be found"; + } + + const char * what () const throw () { + return errorText.c_str(); + } +}; + class Folders { static const std::string dataDir; @@ -44,7 +56,10 @@ public: /* Returns full path for config file */ static std::string getConfigFilePath(); + static FILE* openMandatoryFile(std::string filename, const char* mode); + private: + static const char* getHomeDirectory(); static std::string getGenericDirectory(const char* ENVVAR, const std::string fallback); static bool makeDirectory(std::string path); };