Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Application Path (https://www.delphipraxis.net/72638-application-path.html)

xthing 4. Jul 2006 13:03


Application Path
 
Hi Leute,

wie kann ich den Applikationspfad meiner Anwendung in Delphi herausfinden? Irgendwie mit extractpath, oder so ähnlich?

Könnt ihr mir helfen?

Vielen Dank im voraus.

Gruss
xthing

Klaus01 4. Jul 2006 13:05

Re: Application Path
 
das ist:

Zitat:

Returns the drive and directory portions of a file name.

Unit

SysUtils

Category

file name utilities

function ExtractFilePath(const FileName: string): string;

Description

The resulting string is the leftmost characters of FileName, up to and including the colon or backslash that separates the path information from the name and extension. The resulting string is empty if FileName contains no drive and directory parts.

Note: This function works for multi-byte character systems (MBCS).
ist aber auch in der Hilfe zu finden.

Grüße
Klaus

Gollum 4. Jul 2006 13:05

Re: Application Path
 
Hallo,

Delphi-Quellcode:
ExtractFilePath(Application.ExeName)
oder

Delphi-Quellcode:
ExtractFilePath(ParamStr(0))

Gutelo 5. Okt 2013 06:31

AW: Application Path
 
Dazu haette ich noch eine Frage

Bei mir klappt das mit dem Pfad so lange ich in der Entwicklungsumgebung bin. Kopiere ich jedoch das kompilierte Programm Main.exe mitsamt einem Unterverzeichnis (im gleichen Ordner wie Main.exe) in irgendein anderes Verzeichnis und fuehre es aus, dann findet das Programm den Unterordner nicht mehr. Das heisst ExtractFilePath(Application.ExeName) entspricht dann nicht mehr dem Pfad zur Main.exe.

Wieso ist das so? Ich dachte ExtractFilePath(Application.ExeName) gibt immer den Pfad zur Main.exe zurueck auch wenn ich Main.exe an beliebige Orte auf der Platte kopiere.

Gutelo

jaenicke 5. Okt 2013 07:26

AW: Application Path
 
Das ist auch so. Wo liegt denn dein Programm und was wird dort zurück gegeben?

Ein Beispiel:
c:\programme ist ab Vista nur eine Umleitung auf c:\program files, so dass du letzteres zurück bekommst.

Perlsau 5. Okt 2013 07:26

AW: Application Path
 
Kommt drauf an: Wenn du dein Release-Verzeichnis z.B. in C:\Program Files\ kopierst, hast du dort in der Regel keine Schreibrechte. Deshalb "biegen" neuere Windows-Versionen den Programmpfad um und schreiben in Wirklichkeit in einen öffentlichen Pfad. Das ist natürlich falsch! Jaenicke hat es oben korrekt dargestellt ...

Eine portable Anwendung sollte allerdings, da sie ja nicht in einem der System-Ordner liegt, durchaus in ihr Programmverzeichnis schreiben dürfen.

Dazu hat Jaenicke bereits vor 5 Jahren etwas in der Entwicklerecke geschrieben:

Eine Anwendung - gleichzeitig portabel UND installierbar
Nicht in den Ordner der Exe schreiben

Gutelo 7. Okt 2013 07:57

AW: Application Path
 
Hallo ich habs gerade nochmal ausprobiert.

Wenn ich es unter C:\users\userxyz\Downloads\Unterordner\ packe dann geht es nicht. Wenn ich es irgendwo auf D:\ packe dann geht es. Anscheinend gibt es in den User Ordnern Probleme.

DeddyH 7. Okt 2013 07:59

AW: Application Path
 
Was heißt "geht nicht"? Was steht denn in Application.Exename bzw. ParamStr(0)?

generic 7. Okt 2013 08:59

AW: Application Path
 
Liegt es nur an den Ordner "Downloads". Dieses ist im Explorer nicht direkt ein Ordner sondern eine Weiterleitung auf einen beliebigen Ordner.

Sag uns doch mal bitte die Fehlercodes oder die Exception.

himitsu 7. Okt 2013 09:21

AW: Application Path
 
Da es hier danach klingt.

KEINE relativen Pfade verwenden, denn das Arbeitsverzeichnis muß nicht dem Programmverzeichnis entsprechen (z.B. wenn das Programm über einen Link oder in einem umgeleiteten Vertzeichnis im Explorer, über aufgerufen mit relativen Pfaden und über Suchpfade gefunden)
und das arbeitsverzeichnis kann sich auch während Laufzeit des Programms leicht mal verändern (daür reicht schon ein TOpenDialog aus).


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:37 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz