.NET Framework 4.6.2 を対象とするアプリ以降、以前はサポートされていないパス (長さと形式の両方) をサポートするために、いくつかの変更が行われました。 特に、適切なドライブ区切り記号構文 (コロン) のチェックがより正しく行われました。
インパクト
これらの変更により、以前にサポートされていた Path.GetDirectoryName メソッドと Path.GetPathRoot メソッドの URI パスがいくつかブロックされます。
緩和策
Path.GetDirectoryNameおよびPath.GetPathRootメソッドでサポートされなくなった、以前に許容されていたパスの問題を回避するには、次の操作を行います。
URL からスキームを手動で削除します。 たとえば、URL から
file://
を削除します。URI を Uri コンストラクターに渡し、 Uri.LocalPath プロパティの値を取得します。
Switch.System.IO.UseLegacyPathHandling
AppContext スイッチをtrue
に設定して、新しいパスの正規化を無効にします。<runtime> <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=true" /> </runtime>
こちらも参照ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET