diff options
author | Jonathan Bauer | 2014-09-11 14:59:14 +0200 |
---|---|---|
committer | Jonathan Bauer | 2014-09-11 14:59:14 +0200 |
commit | 6c82d23f7c123c3891e5a972fb9bda93cb68ead2 (patch) | |
tree | f583752697113ba03e5f254effe28fab8d70d812 | |
parent | Merge branch 'maven' of git.openslx.org:openslx-ng/tutor-module into maven (diff) | |
download | tutor-module-6c82d23f7c123c3891e5a972fb9bda93cb68ead2.tar.gz tutor-module-6c82d23f7c123c3891e5a972fb9bda93cb68ead2.tar.xz tutor-module-6c82d23f7c123c3891e5a972fb9bda93cb68ead2.zip |
OS dependent path for config file
-rw-r--r-- | Dozentenmodul/src/main/java/config/config_file.java | 68 |
1 files changed, 52 insertions, 16 deletions
diff --git a/Dozentenmodul/src/main/java/config/config_file.java b/Dozentenmodul/src/main/java/config/config_file.java index e2290f34..754e67a9 100644 --- a/Dozentenmodul/src/main/java/config/config_file.java +++ b/Dozentenmodul/src/main/java/config/config_file.java @@ -4,36 +4,73 @@ import java.io.File; import java.io.IOException; import org.ini4j.Wini; + public class config_file { + + private String configPath = null; public boolean createConfig() throws IOException{ + // Unterscheide zwischen Windows/Unix + String OSName = System.getProperty("os.name").toLowerCase(); + System.out.println("Machine's OS: " + OSName); + if (OSName.contains("windows")) + { + // Windows machine. Use the environment variable 'APPDATA' which + // should point to a path similar to: + // C:\Users\<user>\AppData\Roaming + String appDataPath = System.getenv("APPDATA"); + if (!appDataPath.isEmpty()) + { + System.out.println("APPDATA: " + appDataPath); + configPath = appDataPath + "\\bwSuite\\config.ini"; + } + else + { + // APPDATA was empty, let's build it ourselves... + System.out.println("APPDATA ist leer."); + configPath = System.getProperty("user.home") + "\\AppData\\Roaming\\bwSuite\\config.ini" + + } + + } + else if (OSName.contains("linux")) + { + configPath=System.getProperty("user.home") + "/.config/bwSuite/config.ini"; + + } - String config_file="C:\\Users\\"+System.getProperty("user.name")+"\\AppData\\Roaming\\bwLehrpoolSuite"; + if (configPath == null) + { + System.out.println("Config file path could not be determined."); + } + //config_file="C:\\Users\\"+System.getProperty("user.name")+"\\AppData\\Roaming\\bwLehrpoolSuite"; //File fuer den Ordner erzeugen - File config=new File(config_file); - String file=config_file+"\\config.ini"; - //ini File erzeugen - File conf=new File(file); + File configFile=new File(configPath); Wini ini; //Pruefen ob Ordner schon existiert - if(config.exists()==false) + if(!configFile.exists()) { System.out.println("Ordner \"bwLehrpoolSuite\" exisitiert nicht - lege ihn jetzt an."); //Wenn nicht erzeuge Ordner - config.mkdir(); + if (!configFile.getParentFile().mkdirs()) + { + System.out.print("Konnte Verzeichnisstruktur nicht erstellen: " + configFile.getParentFile()); + System.out.println(" - keine weitere Aktion"); + // jetzt nichts mehr + } //Erzeuge eine neue Datei - conf.createNewFile(); - ini=new Wini(conf); + configFile.createNewFile(); + ini=new Wini(configFile); //Wenn in die Datei geschrieben werden kann - if(conf.canWrite()==true) + if(configFile.canWrite()==true) { System.out.println("Erzeuge \"config.ini.\""); //Schreibe Config - ini.put("main", "BillOfRights",false); + ini.put("main", "BillOfRights", false); ini.put("main", "vmware", false); ini.put("main", "Benutzername speichern", false); ini.put("main", "Benutzername", ""); @@ -51,14 +88,14 @@ public class config_file { { System.out.println("Ordner \"bwLehrpoolSuite\" existiert bereits - keine weitere Aktion."); //Wenn Ordner schon existiert, pruefe ob Datei existiert - if(conf.exists()==false) + if(!configFile.exists()) { System.out.println("\"config.ini\" existiert nicht - lege jetzt an."); //Wenn nicht, erzeuge diese - conf.createNewFile(); - ini=new Wini(conf); + configFile.createNewFile(); + ini=new Wini(configFile); - if(conf.canWrite()==true) + if(configFile.canWrite()==true) { System.out.println("Schreibe jetzt \"config.ini\"."); //Schreibe Konfig in File @@ -81,5 +118,4 @@ public class config_file { return true; } - } |