Einzelnen Beitrag anzeigen

SneakyBagels
(Gast)

n/a Beiträge
 
#12

AW: Existenz langer Pfade

  Alt 4. Jul 2017, 13:48
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.

Geändert von SneakyBagels ( 4. Jul 2017 um 14:26 Uhr)
  Mit Zitat antworten Zitat