Zitat:
"\\?\": Notation für ein lokales Laufwerke oder Gerät
"\\?\
UNC\": Notation für ein Netzwerklaufwerk
So etwas in der Art dachte ich mir schon. Gut zu wissen. Ich denke unsere Lösungen sind jetzt quasi gleich. Aber ich bin sicher es geht noch besser.
Delphi-Quellcode:
function getUNCPath(
const aPath:
string):
string;
begin
Result := aPath;
if aPath.StartsWith('
\\')
then
begin
if TPath.GetExtendedPrefix(aPath) = TPathPrefixType.pptNoPrefix
then
Result := '
\\?\UNC\' + Copy(aPath, 3, Length(aPath));
end
else
Result := '
\\?\' + aPath;
end;
function removeUNCFromPath(
const aPath:
string):
string;
begin
Result := aPath;
if TPath.GetExtendedPrefix(aPath) = TPathPrefixType.pptExtended
then // \\?\ present
Delete(Result, 1, 4)
else if TPath.GetExtendedPrefix(aPath) = TPathPrefixType.pptExtendedUNC
then // \\?\UNC\ present
Delete(Result, 3, 6);
end;