Betriebssystemunabhängiger Speicherpfad

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Betriebssystemunabhängiger Speicherpfad

von Niels » Mo, 26.07.2004 07:24

Stephan hat geschrieben:Alle Pfade, welche unter Extras>Optionen>openOffice.org>Pfade eingetragen sind lassen sich unter Verwendung des Services com.sun.star.util.PathSettings abfragen oder setzen. Diese Abfrage ist unabhängig vom Betriebssystem, allerdings müssen die Pfade gegebenenfalls umgewandelt werden, da die Rückgabe in der spezifischen URL-Notation von Openoffice erfolgt. Hier ist ein Beispiel für "home" oder "Eigene Dateien":

Code: Alles auswählen

Sub home
Path=createunoservice("com.sun.star.util.PathSettings")
msgbox path.work
End Sub
Danke, das ist doch prima. Die Umwandlung ist ja machbar. Zur Weiterverwendung in OO-Basic ist dies ja nicht nötig. Der Windows-Test war schon erfolgreich.

Ciao
Niels

von Stephan » Mo, 26.07.2004 00:16

Alle Pfade, welche unter Extras>Optionen>openOffice.org>Pfade eingetragen sind lassen sich unter Verwendung des Services com.sun.star.util.PathSettings abfragen oder setzen. Diese Abfrage ist unabhängig vom Betriebssystem, allerdings müssen die Pfade gegebenenfalls umgewandelt werden, da die Rückgabe in der spezifischen URL-Notation von Openoffice erfolgt. Hier ist ein Beispiel für "home" oder "Eigene Dateien":

Code: Alles auswählen

Sub home
Path=createunoservice("com.sun.star.util.PathSettings")
msgbox path.work
End Sub

Gruß
Stephan

von Niels » So, 25.07.2004 21:07

Stephan hat geschrieben:
Wie wäre es mit dem OO-Programmpfad?
Das hier sollte funktionieren:

Code: Alles auswählen

Sub OO_programmpfad 
oSettings = createUnoService("com.sun.star.frame.Settings") 
oPathSettings = oSettings.getByName("PathSettings") 
msgbox oPathSettings.ProgPath 
End Sub 
Gruß
Stephan
Jo, tut es, aber ich irgendwie finde ich die Home-Geschichte genial. Wenn ich das lösen könnte, dann fallen mir da so einige andere Sachen ein, die man anstellen kann. Habe mal ein wenig gegoogelt, und bin auch fündig geworden. Leider geht es nur mit DLL-Aufruf und da bin ich an meinen Grenzen. Geht das überhaupt mit OO-Basic? Und nun darf ich den Aufruf ja auch nur dynamisch definieren, denn unter Linux oder OS2 würde diese Deklaratio ja zum qualifizierten Abflug führen.

Gruß
Niels

Home hört sich gut an

von Niels » So, 25.07.2004 20:21

Für Home muss es doch auch etwas unter Windows geben um den Ordner "Eigene Dateien" zu ermitteln. Das wäre ja schick:

Code: Alles auswählen

If environ("home") = "" then
   MeinPfad = environ("WindowsHome")
else
    MeinPfad = environ("home")
end if
Würde das auch unter OS2 laufen, oder müsste ich da extra auf eine andere Umgebungsvariable abfragen?

Danke
Niels

von Toxitom » Sa, 24.07.2004 10:55

hey,

Klar kann man die Umgebungsvariablen auslesen:

Code: Alles auswählen

Sub Main
msgbox environ("path")
msgbox environ("home")
msgbox environ("temp")
End Sub
Läuft Systemunabhängig, allerdings möglicherweise mit unterschiedlichen Ergebnissen. "Home" gibt es eben nur unter Linux. Aber du kannst doch mit Schleifen arbeiten.
Gruss
Thomas

von Stephan » Fr, 23.07.2004 21:57

Wie wäre es mit dem OO-Programmpfad?
Das hier sollte funktionieren:

Code: Alles auswählen

Sub OO_programmpfad 
oSettings = createUnoService("com.sun.star.frame.Settings") 
oPathSettings = oSettings.getByName("PathSettings") 
msgbox oPathSettings.ProgPath 
End Sub 
Gruß
Stephan

Betriebssystemunabhängiger Speicherpfad

von Niels » Fr, 23.07.2004 16:14

Unter Windows kann ich mit msgbox Environ ("WinDir") das Windows Systemverzeichnis ermitteln. msgbox Environ ("Temp") bringt mir das Temp-Verzeichnis, in dem ich mal schnell rumschmieren kann. Das WinDir unter Linux nicht, war schon klar, aber auch Temp geht nicht. Gibt es eine Funktion, mit der ich unter jedem Betriebssystem einen definitiv vorhandenen Pfad ermitteln kann? Wie wäre es mit dem OO-Programmpfad?

Ciao
Niels

Nach oben