Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Netzwerk-Adresse/UNC-Pfad zu normalem Pfad konvertieren (https://www.delphipraxis.net/207078-netzwerk-adresse-unc-pfad-zu-normalem-pfad-konvertieren.html)

DieDolly 22. Feb 2021 20:49

Netzwerk-Adresse/UNC-Pfad zu normalem Pfad konvertieren
 
Gibt es eine Möglichkeit einen Netzwerk-Pfad wie beispielsweise \\nas\media1 so zu verarbeiten, dass ich den gemappten Laufwerksbuchstaben und Pfad in Windows davon bekomme?
\\nas\media1 ist in Windows mit S:\ gemappt und dem Standard-Namen "media1 (\\nas)".

Wenn ich einen Pfad \\nas\media1\geschnitten habe, würde ich nach dem Konvertieren gerne S:\geschnitten erhalten. Ist sowas möglich?

KodeZwerg 22. Feb 2021 21:59

AW: Netzwerk-Adresse/UNC-Pfad zu normalem Pfad konvertieren
 
Hi Dolly, MicMic hat auf meinem Eintrag noch nicht geantwortet. Kannst Du den Code von hier mal testen?
Ich habe zZt. keinen echten Pc hier um das zu machen.

Sonst fällt mir nur ein sich mal mit WMI Objects mal anzufreunden oder Dein eigener Tipp aus dem Link :)

DieDolly 22. Feb 2021 22:23

AW: Netzwerk-Adresse/UNC-Pfad zu normalem Pfad konvertieren
 
Dein Code ergibt, wenn man ihn mit "\\nas\media1" aufruft => "\\?\UNC\nas\media1".

bernau 23. Feb 2021 04:29

AW: Netzwerk-Adresse/UNC-Pfad zu normalem Pfad konvertieren
 
Vielleicht das?

DieDolly 23. Feb 2021 07:19

AW: Netzwerk-Adresse/UNC-Pfad zu normalem Pfad konvertieren
 
Das mappt ein Laufwerk. Gemappt ist es ja schon.

Dalai 23. Feb 2021 10:45

AW: Netzwerk-Adresse/UNC-Pfad zu normalem Pfad konvertieren
 
Also was in jedem Fall geht, ist Folgendes: logische Laufwerke ermitteln, diese durchlaufen und daraus die Buchstaben der Netzlaufwerke (DRIVE_REMOTE) ermitteln. Vielleicht kann man sogar gleich nur die Netzlaufwerke holen, aber da wüsste ich aktuell nicht, mit welcher Funktion das ginge. Sobald man die Netzlaufwerke hat, kann man mit MSDN-Library durchsuchenWNetGetConnection oder MSDN-Library durchsuchenWNetGetUniversalName für jeden Buchstaben den zugehörigen UNC-Pfad holen. Und am Ende müsstest du nur noch mit dem gegebenen UNC-Pfad vergleichen und bei Übereinstimmung hast du den passenden Buchstaben gefunden.

Ist eigentlich logisch, dass es nur Funktionen für diese Richtung (Buchstabe -> UNC-Pfad) gibt, denn ein Netzlaufwerk muss einem UNC-Pfad zugeordnet sein, aber ein UNC-Pfad muss nicht notwendigerweise als Netzlaufwerk gemappt sein. Aber aus obigen Informationen kannst du dir ja sowas basteln.

Grüße
Dalai

DieDolly 23. Feb 2021 10:56

AW: Netzwerk-Adresse/UNC-Pfad zu normalem Pfad konvertieren
 
Klingt kompliziert. Wäre alles gar nicht nötig, wenn Das TreeView von MustangpeakVirtualshellTools das unterstützen würde.
Ich benutze das von MustangpeakVirtualshellTools, weil ich es nicht hinbekomme einen "Explorer" (mit CheckBoxen und "anchecken" aller Nodes anhand einer StringList) mit dem normalen VirtualStringTree nachzubilden.

TiGü 23. Feb 2021 12:11

AW: Netzwerk-Adresse/UNC-Pfad zu normalem Pfad konvertieren
 
Zitat:

Zitat von DieDolly (Beitrag 1483582)
Klingt kompliziert.

Du schreibst das ziemlich oft.
Aber genau darum geht es bei der Entwicklung von Software und dem Programmieren an und für sich.
Man löst komplizierte Probleme. Die Lösungen bilden das manchmal ab.
Wenn man nicht gewillt ist, sich darauf einzulassen, hat man vielleicht den falschen Job bzw. ein unpassendes Hobby gewählt.

Wobei hier der Lösungsvorschlag von Dalei ziemlich trivial ist und auf ein paar Zeilen in einer kleinen Klasse zu erschlagen ist.

Du iterierst von A bis Z die Laufwerkbuchstaben.
Die Laufwerke, die per GetDriveType() Funktion ein DRIVE_REMOTE zurückliefen, merkst du dir in einem Container.
Es bietet sich TDictionary<string, string> an. Wobei der Key der UNC-Pfad ist und Value dann der Laufwerksbuchstabe.
Wenn du dann im weiteren Programverlauf ein UNC-Pfad bekommst, kannst du dein Dictionary einfach nach dem Laufwerksbuchstaben fragen.

DieDolly 23. Feb 2021 12:17

AW: Netzwerk-Adresse/UNC-Pfad zu normalem Pfad konvertieren
 
Zitat:

Du schreibst das ziemlich oft.
Kompliziert heißt ja nicht unmöglich :P

bernau 23. Feb 2021 12:25

AW: Netzwerk-Adresse/UNC-Pfad zu normalem Pfad konvertieren
 
Zitat:

Zitat von DieDolly (Beitrag 1483546)
Das mappt ein Laufwerk. Gemappt ist es ja schon.

OK. Hatte ich falsch verstanden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:57 Uhr.
Seite 1 von 2  1 2      

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