Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.052 Beiträge
 
Delphi 12 Athens
 
#13

Re: wie Localized Pathname auslesen?

  Alt 24. Aug 2009, 19:09
So, in der JCL befindet sich eine Funktion Namens JclFileUtils.PathGetLocalizedPath
und ihre Umkehrfunktion JclFileUtils.PathGetPhysicalPath.

Diese können gleich einen ganzen relativen (glaub sich zumindestens) oder absoluten Pfad übersetzen können,

also in/von
- Anzeigepfad, so wie er z.B. im Explorer angezeigt wird
- physischen Pfad, so wie er für den ganzen Dateifunktionen benötigt wird

TOpenDialog zeigt auch den Anzeigepfad an, liefert aber als Ergebnis den physischen Pfad.



Da diese Funktionen aber 1. den Pfad parsen, versuchen in einzelne Dateien/Verzeichnisse zu zerlegen
und dann 2. jeden Ordner einzeln umwandeln und dann auch noch 3. recht "umständlich" über z.B. mit folgenen Funktionen arbeiten:
IShellFolder.ParseDisplayName
IShellFolder.BindToObject
IShellFolder.EnumObjects
IShellFolder.GetDisplayNameOf
Belasse ich es in meinem Fall bei meiner Variante, welche allerdings nur einen Pfadnamen (ohne direkt Pfadangabe, also mit getrenntem Elternverzeichnis) umwandeln kann, da dieses für meinen Fall optimaler scheint.

Ich könnte zwar auch den einzelnen Pfadnamen über diese oben genannten Funktionen oder auch direkt über die Funktionalitäten von IShellFolder umwandeln, aber ich glaub optimaler wird es so nicht unbedingt.




PS: um eure User nicht mit "komischen" Pfadnamen zu verwirren, empfehle ich, wenn ihr vor Anzeige eines Pfades (z.B. in einem Label oder Edit) diesen in den Lokalisierten Namen umwandelt.

Nicht daß er sich Wundert, daß euer Programm C:\Users\... anzeigt, aber er nur C:\Benutzer\... bei sich findet.
Dabei sollten diese Funktionen bis zu Win9x hinunter funktionieren, auch wenn sie da recht selten einen lokalisierten Namen vorfinden, was ja aber egal ist.

und sorry für den Mehrfachpost, aber es sind ja auch getrennte Dinge
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat