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:
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;
Auf meinem Test-System ist "\\Mac\Home" äquivalent zu "Y:\". Beides wird im Windows File Explorer äquivalent angezeigt.
Aber diese Funktion gibt einen Leerstring und den Fehlercode 1200 zurück:
MapUNCPathToDrivePath('\\Mac\Home');
Kann das jemand auf seinem System testen?
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.