Entwickler-Ecke
Dateizugriff - Problem mit mit dem festlegen eines Verzeichnis
Henry - Do 04.09.03 16:14
Titel: Problem mit mit dem festlegen eines Verzeichnis
Hallo,
ich habe folgendes Problem: in meinem Programm lege ich mit
Delphi-Quelltext
1:
| Pfad := ExtractFilePath(paramstr(0)); |
den Standartpfad für die Dateien die ich zur Laufzeit erzeugen lasse fest. Nun möchte ich aber meine Programmdateien im Programmverzeichnis in einem eigenen Ordner z.B. \bin ablegen und die Dateien im Programmverzeichnis ebenfalls in eigene Ordner ablegen.
Dadurch kann ich ja nicht mehr mit dem oben gezeigten Code arbeiten. Wie kann ich ein Verzeichnis höher gehen (also von meinem Pfad ins Programmverzeichnis)?
Kann mir da jemand helfen, habe in der Hilfe nichts gefunden. Ich hoffe ich habe es einigermaßen verständlich geschrieben :D
PS: Habe schon Probiert mit ../ vor meiner Pfadangabe, hat aber nicht geklappt.
Delete - Do 04.09.03 16:40
Titel: Re: Problem mit mit dem festlegen eines Verzeichnis
| Henry hat folgendes geschrieben: |
| Nun möchte ich aber meine Programmdateien im Programmverzeichnis in einem eigenen Ordner z.B. \bin ablegen und die Dateien im Programmverzeichnis ebenfalls in eigene Ordner ablegen. |
Darüber würde ich noch mal nachdenken. An sich spricht nichts gegen die Idee, aber in Mehrbenutzerumgebungen greifen alle angemeldeten Benutzer dann auf die selben Dateien zu (schlecht bei privaten, gespeicherten Infos), unter NT-Systemen kann es aber auch (auf Grund eingeschränkter Rechte des jeweiligen Benutzers) zu Problemen beim Erstellen dieser Dateien kommen. Dazu könnte ich ein Beispiel nennen, bei dem beides passiert ist, aber das wäre unfair, weil derjenige das Problem mittlerweile kennt und sicher auch beheben wird.
| Zitat: |
| Wie kann ich ein Verzeichnis höher gehen (also von meinem Pfad ins Programmverzeichnis)? |
Na ja, entweder den umständlichen Weg, indem du das ermittelte Verzeichnis als Arbeitsverzeichnis setzt, dann eins höher springst und das übergeordnete Verzeichnis ermittelt
Delphi-Quelltext
1: 2: 3:
| SetCurrentDir(ExtractFilePath(paramstr(0))); ChDir('..'); szDummy := GetCurrentDir; |
oder du bemühst copy und ermittelst aus dem Pfad der Anwendung das übergeordnete Verzeichnis:
Delphi-Quelltext
1: 2: 3: 4: 5:
| szDummy := ExtractFileDir(paramstr(0)); i := length(szDummy); while not(szDummy[i] in['\',':']) do dec(i);
ShowMessage(copy(szDummy,1,i)); |
Als Beispiel. Kann man sicher noch eleganter machen.
PS: Weil "ExtractFilePath" den schließenden Backslash liefert, solltest du vielleicht "ExtractFileDir" benutzen, oder du entfernst den Backslash am Ende, bevor du die paar Beispielzeilen aufrufst.
Henry - Do 04.09.03 18:51
Danke Dir!
Ich werde mir mal beides etwas genauer betrachten und probieren für welche Möglichkeit ich mich entscheide.
Bei Deinen Ausführungen taucht wieder eine interessante Frage bei mir auf :)
Wie bekomme ich den den Ordner mit den Anwendungsdaten des jeweiligen Users heraus um meine Daten dort zu speichern?
Laufen diese Programme die die Anwendungsdaten in diesem Ordner Speichern auch noch auf Win98?
Henry - Do 04.09.03 21:47
Danke Dir auch für diese Information.
Die Sache mit dem übergeordneten Verzeichnis habe ich mit der ersten
von Dir aufgezeigten Möglichkeit gelöst, sie erschien mir für mich am
optimalsten.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!