Diese Funktion verstehe ich nicht ganz.
Könntest du ein paar Beispiele (Text, hier im Forum) anfügen?
So wie ich zuvor vielleicht
Delphi-Quellcode:
ShowMessage( getUNCPath('Y:\') ); // Y = Netzlaufwerk. Resultat => Y:\
ShowMessage( getUNCPath('C:\') ); // C = Systemlaufwerk. Resultat => \\?\C:\
Wo wir schon einmal dabei sind:
\\?\ lässt sich auch auf Netzlaufwerke anwenden, wenn sie gemounted sind (also keine reine
IP).
Ich würde wenn dann ja eher so machen
Delphi-Quellcode:
function getUNCPath(const aPath: string): string;
begin
Result := aPath;
if not aPath.StartsWith('\\') then // <=== hinzugefügt, damit aus \\192.168.0.1 nicht \\?\\\192.168.0.1 gemacht wird
if TPath.GetExtendedPrefix(aPath) = TPathPrefixType.pptNoPrefix then
Result:= '\\?\' + aPath;
end;
function removeUNCFromPath(const aPath: string): string;
begin
Result := aPath;
if TPath.GetExtendedPrefix(aPath) = TPathPrefixType.pptExtended then // \\?\ present
Delete(Result, 1, 4);
end;
Aber was ist jetzt richtig-er bzw überhaupt richtig und funktionstüchtig? Würde mich auch brennend interessieren.