]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Utils/Folders.h
Write config and user data to %APPDATA% on Windows
[lugaru.git] / Source / Utils / Folders.h
index 0343b6c2d4923578a436cae24a7a08b9947270d0..495f149bb080c5a2c8bcdd0cd15c703254f51a49 100644 (file)
@@ -23,10 +23,22 @@ along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
 
 #include <string>
 
-#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);
 };