Thema: Delphi MapUNCPathToDrivePath

Einzelnen Beitrag anzeigen

PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#1

MapUNCPathToDrivePath

  Alt 6. Feb 2023, 12:18
Ich habe mir eine Funktion geschrieben, die einen UNC-Pfad (beginnt mit "\\") in den zugehörigen Drive-Path (startet z.B. mit "C:\") konvertiert:

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');
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.
  Mit Zitat antworten Zitat