![]() |
MapUNCPathToDrivePath
Ich habe mir eine Funktion geschrieben, die einen UNC-Pfad (beginnt mit "\\") in den zugehörigen Drive-Path (startet z.B. mit "C:\") konvertieren soll:
Delphi-Quellcode:
Auf meinem Test-System ist "\\Mac\Home" äquivalent zu "Y:\". Beides wird im Windows File Explorer äquivalent angezeigt.
function MapUNCPathToDrivePath(UNCPath: string): string;
var DrivePath: array[0..MAX_PATH] of Char; BufferSize: DWORD; Error: DWORD; begin BufferSize := SizeOf(DrivePath); Error := Winapi.Windows.WNetGetUniversalName(PChar(UNCPath), UNIVERSAL_NAME_INFO_LEVEL, @DrivePath[0], BufferSize); if Error = NO_ERROR then begin Result := DrivePath; CodeSite.Send('MapUNCPathToDrivePath: NO_ERROR'); end else begin Result := ''; CodeSite.Send('MapUNCPathToDrivePath: ERROR', Error); end; end; Aber diese Funktion gibt einen Leerstring und den Fehlercode 1200 zurück:
Delphi-Quellcode:
MapUNCPathToDrivePath('\\Mac\Home');
Kann das jemand auf seinem System testen? |
AW: MapUNCPathToDrivePath
1200 sagt natürlich genau aus, was damit gemeint ist, bzw. wir kennen atürlich alle paar Millionen Codes auswendig. :stupid:
Zitat:
Zitat:
Delphi-Quellcode:
CodeSite.SendError('MapUNCPathToDrivePath: ERROR %d = %s', [Error, SysErrorMessage(Error)]);
Tja, es scheint keine unterschiedlichen Fehler für "ungültige Syntax" und "das gibt's hier nicht" zu geben. :cry: * du hast dich doch verschrieben * der Computer (Mac) konnte nicht aufgelöst/gefunden werden * der Share "Home" konnte nicht gefunden werden * oder kein Zugriff auf Eines von Beiden (falsche/fehlende Logindaten) |
AW: MapUNCPathToDrivePath
Wie ich schrieb, wird der Pfad "\\Mac\Home" sowie sein Äquivalent im Windows File Explorer problemlos angezeigt. Was ist an der obigen Funktion dann falsch?
|
AW: MapUNCPathToDrivePath
Zitat:
Zitat:
|
AW: MapUNCPathToDrivePath
Sollte passen.
LongStrings in Delphi sind aus Kompatibilitätsgründen "standardmßig" doppelt null-terminiert. (falls kein Bufferoverrun und Dergleichen) "Constant" kommt auch hin, da sich der String während des Aufrufs nicht ändert. Aber stimmt, "drive-based" klingt danach, als wenn es andersrum ist, aber es kann auch ein "univeral name" rein gehn. |
AW: MapUNCPathToDrivePath
Danke für die Information. Weiß jemand, wie ich den umgekehrten Weg gehen kann - also UNCPath in den zugehörigen DrivePath umwandeln?
|
AW: MapUNCPathToDrivePath
Mir fällt nur "HKEY_CURRENT_USER\Network" dazu ein. Darüber iterieren bis ein Treffer zum UNC passt.
|
AW: MapUNCPathToDrivePath
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Anhang 55804 |
AW: MapUNCPathToDrivePath
Komisch, eigentlich solltest Du mit Deiner obigen Angabe "HKEY_CURRENT_USER\Network\Y" ein Auflistung von "Y" erhalten, in diesem wiederum ist dann ein "RemotePath".
Abgesehen das Dein Bild lustige Vierecke hat, ist nichts ersichtlich ob Du da überhaupt richtig bist. |
AW: MapUNCPathToDrivePath
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Anhang 55805 Die "lustigen Vierecke" sind Verpixelungen. Könntest du einen Screenshot von deinem Network-Ordner posten? Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:09 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