AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Ermittlung physikalischer Dateipfad aus "Localized Name"
Thema durchsuchen
Ansicht
Themen-Optionen

Ermittlung physikalischer Dateipfad aus "Localized Name"

Ein Thema von UliBru · begonnen am 15. Nov 2011 · letzter Beitrag vom 16. Nov 2011
Antwort Antwort
UliBru

Registriert seit: 10. Mai 2010
155 Beiträge
 
Delphi 11 Alexandria
 
#1

Ermittlung physikalischer Dateipfad aus "Localized Name"

  Alt 15. Nov 2011, 14:27
Hallo zusammen,

wie meistens suche ich eine Nadel im Heuhaufen. Vielleicht hilft meine direkte Anfrage schneller.

Ich verwende VCL-Komponenten von Almediadev (Skins). Hierbei nun eine Komponente bzgl. Select Directory.
Die zeigt mir nun heute übliche Namen an wie Desktop, Bibliotheken, Bilder, Dokumente, Heimnetzgruppe etc. Auf PCs in USA würde dann daraus etwas wie Libraries, Pictures, Documents. Möglicherweise mit älteren OS-Versionen ergeben sich dann Namen wie Eigene Dokumente oder MyDocuments usw. usw.

Nun wählt der Programmnutzer also irgend ein "Verzeichnis". Es muss festgestellt werden, ob es überhaupt ein Verzeichnis ist, z.B. Heimnetzgruppe wäre wohl keines. Dann muss aus dem lokalen Namen wohl der intern verwendete englische Name bestimmt werden. Damit damit widerum die zugehörige CSIDL gefunden wird. Mit der dann der reale Pfad ermittelt wird.
So stell ich mir das zumindest vor.

JclFileUtils.PathGetPhysicalPath als Beispiel liefert mir mit JclFileUtils.PathGetPhysicalPath('Bilder') als Ergebnis 'Bilder' zurück, also unbrauchbar.

Wie/womit erhalte ich aus einem mit Select Direktory zurückgegebenen String nun den realen physikalischen Pfadnamen, den ich dann mit beliebigen Dateiperationen verwenden kann? Gibt es da was Fertiges? Muss jeder sich selbst durchwursteln?

Danke für jede Hilfe im voraus.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Ermittlung physikalischer Dateipfad aus "Localized Name"

  Alt 15. Nov 2011, 14:37
Diese Pfadauswahldialoge sollten die lokalisieren Pfadnamen eigentlich nur anzeigen, aber im Programm sollte dieses den richtigen Pfadnamen zurückgeben.


Zitat:
JclFileUtils.PathGetPhysicalPath('Bilder') als Ergebnis 'Bilder'
Ich vermute mal, daß der angegebene Parameter "Bilder" schon falsch ist und da dieses dann nicht übersetzt werden kann, liefert diese Funktion wohl einfach nur den unveränderten String zurück.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
UliBru

Registriert seit: 10. Mai 2010
155 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Ermittlung physikalischer Dateipfad aus "Localized Name"

  Alt 15. Nov 2011, 16:26
Diese Pfadauswahldialoge sollten die lokalisieren Pfadnamen eigentlich nur anzeigen, aber im Programm sollte dieses den richtigen Pfadnamen zurückgeben.
Ja, sollte ...
Tut es leider nicht. Und nun müsste ich dann ja erst einmal zu den intern verwendeten Namen kommen um dann vielleicht mit JCL weiterzukommen. Gibt es da etwas? Und wenn ich dann daran denke, dass in Polen ein entsprechend anderer localized Name zurückgegeben wird ...
  Mit Zitat antworten Zitat
bernerbaer
(Gast)

n/a Beiträge
 
#4

AW: Ermittlung physikalischer Dateipfad aus "Localized Name"

  Alt 15. Nov 2011, 16:34
Wie schon himitsu gesagt hat, eigentlich sollten Pfadauswahldialoge die korrekten Pfade zurückgeben. Wenn dem nicht so ist, gibt es vielleicht verschiedene Properties in der Komponenente, die den Pfad unterschiedlich zurückgeben zb localizedPath, RealPath, UNCPath, PathForParsing, ...?

Zu empfehlen ist zudem sich an den Hersteller der Komponente zu wenden, der kann dir garantiert weiterhelfen: http://www.almdev.com/

Geändert von bernerbaer (15. Nov 2011 um 17:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Ermittlung physikalischer Dateipfad aus "Localized Name"

  Alt 16. Nov 2011, 06:05
Einfach nur "Bilder" als Pfad ist mir eigentlich zu wenig. Es sollte wohl "C:\Bilder" sein oder nicht?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
UliBru

Registriert seit: 10. Mai 2010
155 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Ermittlung physikalischer Dateipfad aus "Localized Name"

  Alt 16. Nov 2011, 09:31
Ich hab an Almediadev geschrieben, bisher keine Antwort. Die Komponente liefert tatsächlich nur Pfade wie 'Bilder', 'Dokumente etc. C:\Bilder wäre auch falsch.
Habe beim Windows Explorer festgestellt, dass bei dargestelltem Verzeichnis 'Eigene Bilder' ein Klick in die Adressleiste oben dann den Pfad C:\Users\User\Pictures dargestellt. Wenn man die Bilder aber auch in die Bibliothek aufgenommen hat, liefert der Klick nur Bibliotheken\Bilder. Man muss dann noch ein Verzeichnis tiefer, um dann wiederum das richtige Ergebnis zu erhalten. Ist insofern klar, weil unter dem logischen Verzeichnis Bibliotheken\Bilder wiederum mehrere physikalische Verzeichnisse liegen können. Es gibt einfach keinen Dateipfad für Bibliotheken\Bilder.

Tja, nun soll der Benutzer aber eben ein Verzeichnis wählen können und das Programm soll damit arbeiten. Die Komponente verwendet intern einen ShellTree, aber da hört es mit meinen Kenntnissen auf. Es sollte nur ein Baum aus realen Verzeichnissen dargestellt werden. Wie das geht, weiss ich nicht und Almediadev hat noch nicht geantwortet.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Ermittlung physikalischer Dateipfad aus "Localized Name"

  Alt 16. Nov 2011, 12:18
Wie wäre es denn mit einer anderen Komponente, die Verzeichnisinformationen zu erhalten? Z.B. mit SHBrowseforFolder?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 Uhr.
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