Freigeben über


Entschärfung: Überprüfen von Pfaden auf Doppelpunkte

Für Apps, die gezielt .NET Framework 4.6.2 und höhere Versionen verwenden, wurde eine Reihe von Änderungen vorgenommen, um zuvor nicht unterstützte Pfade zu unterstützen (im Hinblick auf Länge und Format). Insbesondere wurden Prüfungen auf ordnungsgemäße Syntax von Laufwerkstrennzeichen (den Doppelpunkt) strenger definiert.

Auswirkungen

Durch diese Änderungen werden einige URI-Pfade blockiert, die von den Methoden Path.GetDirectoryName und Path.GetPathRoot zuvor unterstützt wurden.

Minderung

Sie können folgendermaßen vorgehen, um das Problem von bisher gültigen Pfaden zu umgehen, die von den Methoden Path.GetDirectoryName und Path.GetPathRoot nicht mehr unterstützt werden:

  • Entfernen Sie manuell das Schema aus einer URL. Entfernen Sie beispielsweise file:// aus einer URL.

  • Übergeben Sie den URI an einen Uri-Konstruktor, und rufen Sie den Wert der Eigenschaft Uri.LocalPath ab.

  • Entscheiden Sie sich gegen die Normalisierung des neuen Pfades, indem Sie den Schalter Switch.System.IO.UseLegacyPathHandlingAppContextauf true festlegen.

    <runtime>  
        <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=true" />
    </runtime>  
    

Siehe auch