Seite 1 von 1

Speichern von Preferences Crossplatform

Verfasst: 22.08.2014 09:06
von Bisonte
Hallo.

Hier eine Frage an die Linux-, und Macnutzer.

Wo kann man bei den beiden Systemen gefahrlos (will sagen: man hat die erforderlichen Schreibrechte von Haus aus)
seine Konfigurationsdateien speichern ?

Unter Windows nehme ich gewöhnlich "C:\Users\Username\AppData\Roaming\MeinVerzeichnis\".
Gibt es so ein geartetes Verzeichnis auch auf den anderen Systemen ?

Wenn ja, wie heissen diese, bzw. wie komme ich an die Pfade heran ?

Re: Speichern von Preferences Crossplatform

Verfasst: 22.08.2014 09:21
von RSBasic
Bei Mac keine Ahnung, aber bei Linux kannst du deine Dateien im Home-Verzeichnis anlegen. Du kannst dort ein verstecktes Verzeichnis erstellen.
Beispiel:

Code: Alles auswählen

GetHomeDirectory() + ".Bisonte/MyApplication/Settings.prefs"

Re: Speichern von Preferences Crossplatform

Verfasst: 22.08.2014 09:35
von Bisonte
RSBasic hat geschrieben:

Code: Alles auswählen

GetHomeDirectory() + ".Bisonte/MyApplication/Settings.prefs"
Wobei ich jetzt davon ausgehe das .Bisonte zu ersetzen wäre mit : "." + UserName() ...

Code: Alles auswählen

GetHomeDirectory() + "." + Username() + "/MyApplication/Settings.prefs"
Sehe ich das so richtig ?

Wobei ich mich jetzt frage : Wie erstelle ich ein "verstecktes" Verzeichnis unter Linux ?

Anbei noch die Frage : Gibt es ein kostenloses MacOs, das ich mit einer VM nutzen kann ? Linux Distros gibt es ja zuhauf ;)

Re: Speichern von Preferences Crossplatform

Verfasst: 22.08.2014 09:41
von RSBasic
Bisonte hat geschrieben:Wobei ich jetzt davon ausgehe das .Bisonte zu ersetzen wäre mit : "." + UserName() ...

Code: Alles auswählen

GetHomeDirectory() + "." + Username() + "/MyApplication/Settings.prefs"
Sehe ich das so richtig ?
Nein. Du befindest dich bereits in deinem User-Verzeichnis. GetHomeDirectory() liefert genau den Pfad, den du brauchst. Der von mir im Beispiel eingebenene Nickname von dir "Bisonte" wäre dann stattdessen der Name deiner Entwicklungsschmiede. :D
Bisonte hat geschrieben:Wobei ich mich jetzt frage : Wie erstelle ich ein "verstecktes" Verzeichnis unter Linux ?
Einfach ein "." vor dem Namen deines Ordners setzen.
MyFolder = Ist kein verstecktes Verzeichnis
.MyFolder = Ist ein verstecktes Verzeichnis

Re: Speichern von Preferences Crossplatform

Verfasst: 22.08.2014 09:58
von Bisonte
Ah ok.... Danke für die erhellenden Worte.

Re: Speichern von Preferences Crossplatform

Verfasst: 22.08.2014 13:10
von ts-soft

Code: Alles auswählen

Procedure.s GetPrefsFile(AppName.s, FileName.s = "settings.prefs", Publisher.s = "ts-soft")
  Protected Path.s, slash.s
  
  CompilerSelect #PB_Compiler_OS
    CompilerCase #PB_OS_Windows
      slash = "\"
      Path = GetEnvironmentVariable("APPDATA") + "\"
    CompilerDefault
      slash = "/"
      Path = GetHomeDirectory() + "."    
  CompilerEndSelect
  If Publisher
    Path + Publisher + slash
    If Not FileSize(Path) = - 2
      CreateDirectory(Path)
    EndIf
  EndIf
  Path + AppName + slash
  If Not FileSize(Path) = - 2
    CreateDirectory(Path)
  EndIf
  If FileSize(Path) = -2
    ProcedureReturn Path + FileName
  EndIf
EndProcedure