German Der "My documents" Pfad

Dataverde

Member
Licensed User
Longtime User
Hallo Leute,

ich habe folgendes Problem:
Ich führe ein Programm von der SD-Karte im Gerät aus. Dieses Programm soll nun im Gerätespeicher eine .txt-Datei anlegen und bearbeiten.
Dazu benutze ich
B4X:
FileOpen (c1,"My documents/Export"&"/"&tmp_file,cWrite,,cASCII)
das funktioniert auch gut wenn ich mit AppPath und einem Zielordner im Programmpfad arbeite.

Nun sollte er aber auf dem Gerät im "My documents" ordner arbeiten.
Mit dem Befehl versucht er "/SD card/mein Programmordner/My documents/Export" zu finden.

Könnt ihr mir sagen wie das richtig geht?
Ich hoffe ich habe das Problem verständlich beschrieben...

Grüße,
Lennart
 

Amalkotey

Active Member
Licensed User
Longtime User
Hallo Lenard,

versuch mal:

B4X:
FileOpen(C1, "\Speicherkarte\mein Programmordner\My Documents\Export" &" \" & Tmp_File, cWrite,,cASCII)

Diese Zeile müßte funktnieren. Das Laufwerk, SD Card bzw. Speicherkarte könnte der Knackpunkt sein. Dieses hängt von der Sprache des OS ab.

Gruss
Amalkotey
 

corwin42

Expert
Licensed User
Longtime User
Nun sollte er aber auf dem Gerät im "My documents" ordner arbeiten.
Um hier vollständig flexibel zu bleiben und unterschiedliche Geräte zu unterstützen, sollte man auf das Verzeichnis nicht direkt zugreifen, sondern über die Funktion GetSpecialFolder() der Hardware.library.

Wenn hw ein Hardwareobjekt der Hardware.library ist, bekommt man mit
B4X:
hw.GetSpecialFolder(hw.sfPersonal)
den korrekten Pfad.

Genauso sollte man nicht direkt auf Speicherkarten mit Namen zugreifen, da die je nach Gerät immer anders heissen. Hier liefert die Hardware.library auch eine passende Funktion, um eine Liste aller Verfügbaren Speicherkarten zu bekommen.

Gruß,
Markus
 

Dataverde

Member
Licensed User
Longtime User
Nochmal danke für die Info´s.
Die könnten noch nützlich sein.

Grüße,
Lennart
 
Top