![]() |
Delphi-Version: 5
Was macht ExpandFileName?
Ich stehe gerade etwas auf dem Schlauch, als ich ExpandFileName() an einer Stelle im Code gefunden habe.
Die Funktion wird an einer Stelle aufgerufen, wo ich zu 100% immer nur absolute Pfade übergebe. Was genau bewirkt ExpandFileName dann dort? Und kann es raus? |
AW: Was macht ExpandFileName?
Zitat:
Zitat:
...:cat:... |
AW: Was macht ExpandFileName?
Wenn ich aber einen relativen Pfad habe, woher kommt dann der absolute? Wird dann in der NTFS-Tabelle nachgeguckt?
Ich weiß gerade nicht mal, was ein relativer Pfad unter Windows sein soll. Eventuell \Test\Path\File.exe statt D:\Test\Path\File.exe ? |
AW: Was macht ExpandFileName?
Ein relativer Pfad (beginnt mit .\ oder ..\) ist relativ zum Working Directory oder aktuellen Verzeichnis.
Wenn Du nichts tust, ist das das aktuelle Verzeichnis das, in dem die EXE-Datei liegt beim Start. Was ExpandFileName macht, sagt doch die Hilfe ganz klar: Zitat:
|
AW: Was macht ExpandFileName?
Es gibt ja SetCurrentDir bzw. GetCurrentDir.
Damit kannst du das aktuelle Verzeichnis festlegen bzw. auslesen. z.B: könnte der CuurenDir ja = C:\Users\User sein Dann währe ein Pfad "Desktop\MeinOrdner\" ein relativer Pfad, weil er der Inhalt relativ zum CurrentDir ist. Der dazugehörige absolute Pfad wäre "C:\Users\User\Desktop\MeinOrdner". |
AW: Was macht ExpandFileName?
Ein relativer Pfad ist z.B. system32\shell32.dll oder auch Windows\system32\kernel32.dll. ExpandFileName macht daraus einen absoluten Pfad, IIRC basierend auf dem aktuellen Arbeitsverzeichnis. ExpandFileName prüft NICHT, ob der zusammengebaute zurückgegebene absolute Pfad auf eine existierende Datei verweist - wie schon im von sakura geposteten Hilfeauszug zu lesen.
Grüße Dalai |
AW: Was macht ExpandFileName?
Solche Pfade verwende ich nicht. Dann kann ich ExpandFileName ja rausschmeißen. Der Geschwindigkeitsvorteil durch das Weglassen ist vernachlässigbar.
|
AW: Was macht ExpandFileName?
Code:
1. ist klar.
c:\temp\dateiname.ext -> absoluter Pfad.
.\Dateiname.ext -> relativer Pfad, im gleichen Verzeichnis, in dem wir uns befinden, also z. B. das Arbeitsverzeichnis eines Programmes. 2.
Delphi-Quellcode:
ExtractFilePath(Application.Exename) + Copy('.\Dateiname.ext',2,Length('.\Dateiname.ext');
Dürfte (in etwa)
Delphi-Quellcode:
entsprechen, mit dem Unterschied: ExpandFileName bildet alle weiteren Möglichkeiten von relativen Pfaden mit ab, die man sonst einzeln "nachprogrammieren" müsste.
ExpandFileName('.\Dateiname.ext')
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz