Pfade zu Dateien auf Netzlaufwerken in UNC-Pfade umwandeln
Hallo,
ich habe hier diesen Code gefunden der den Pfad zu gemappten Netzlaufwerken ausgibt. Ich habe diesen Code ganz minimal abgeändert um dann mit meiner Funktion komplette Pfade zu übergeben die dann in einen UNC-Pfad umgewandelt werden können. Vielleicht kann es ja noch einer gebrauchen.
Delphi-Quellcode:
Aufruf wäre bspw. so:
uses
...StrUtils; function ResolveShareName (LocalDevice : String) : String; var pLocName : PChar; pShareName : PChar; FuncResult : DWORD; BufLength : Cardinal; begin // Speicher für die Strings allozieren! pLocName := StrAlloc(255); pShareName := StrAlloc(255); // String in PString kopieren StrPCopy (pLocName, LocalDevice); BufLength := 255; FuncResult := WNetGetConnection(pLocName,pShareName,BufLength); if FuncResult <> NO_ERROR then Result := pLocName else Result := pShareName; // aufräumen! StrDispose (pShareName); StrDispose (pLocName); end; function ConvertPathToUNC (FileName : String) : String; var Drive, UNC_PATH : String; PosDrive : Integer; begin PosDrive := Pos(':\', FileName); while PosDrive > 0 do begin Drive := Copy (FileName, PosDrive - 1, 2); if GetDriveType(PChar(Drive)) = DRIVE_REMOTE then begin UNC_PATH := ResolveShareName (Drive); Delete (FileName, PosDrive - 1, 2); Insert (UNC_PATH, FileName, PosDrive - 1); PosDrive := Pos(':\', FileName); end else begin PosDrive := PosEx(':\', FileName, PosDrive + 1); end; end; Result := FileName; end;
Delphi-Quellcode:
Als Ergebnis käme dann folgendes raus:
showmessage(ConvertPathToUNC('S:\Test\Test.txt'));
Delphi-Quellcode:
'\\Server\Test\Test.txt'
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 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