Hallo,
ich bin verwirrt.
Ich setze im OnCreate das Arbeitsverzeichnis:
SetCurrentDir(ExtractFilePath(ParamStr(0)));
Und erwarte, dass in meinen Programm neue Textdateien usw. dann auch in dem Verzeichnis landen, indem die ausführbare Datei ist z.B.:
datei : TSTringlist
[...]
datei.savetoFile('./datei.txt');
[...]
Trotzdem landen Dateien gelegentlich im /Home Verzeichnis. Meistens landen sie in dem Verzeichnis der ausführbaren Datei. Dateien im /Home scheinen zusätzlich zu sein, ich bekomme keinen Datenverlust. Aber ich kann es auch nicht richtig reproduzieren. Es fällt mir nur hin und wieder zufällig auf, dass im Home Verzeichnis Dateien herumliegen, die da nicht hingehören (leere Dateien. Gespeichert wurde richtig im Programmverzeichnis).
Aber warum ist das so??
Wie verhält es sich so? (Theoretisch doch auch im Programmverzeichnis?)
datei.savetoFile('datei.txt');
Oder bei Programm Verknüpfungen? Das sollte ja mit setzen des Arbeitsverzeichnises aber keine Rolle spielen?!
Muss ich das Arbeitsverzeichnis auf jeder Form neu setzen?!
LG
Epcop
Linux
Arbeitsverzeichnis richtig setzen?
Re: Arbeitsverzeichnis richtig setzen?
Schwer zu sagen, wenn du es nicht reproduzieren kannst.
Warum nicht einfach mit vollständigem Pfad probieren?
Für Konfigurationsdateien auch gerne GetAppConfigDir.
https://www.freepascal.org/docs-html/rt ... igdir.html
Warum nicht einfach mit vollständigem Pfad probieren?
Code: Alles auswählen
SL.SaveToFile(Application.Location+'datei.txt');https://www.freepascal.org/docs-html/rt ... igdir.html