.NET で 259 文字を超えるファイル パスを使用する
FileInfo
などの標準の .NET ファイル アクセス方法には、259 文字のパス長制限 (MAX_PATH) があります。 この記事では、長いファイル パスを処理するための回避策を検討します。
Unicode とロングパスのサポート
この解決策には、\?\
を先頭に付加した長いパス構文を利用することが含まれます。これは、Win32 API 関数の Unicode バージョンへの P/Invoke 呼び出しと組み合わせることで、長いパスの処理を制限する Windows API の制限を回避します。 この構文は、長いパスで問題を引き起こす特定のファイル名の正規化を防ぎます。
.NET Framework の互換性
.NET Framework 4.6.2 以降のバージョンは、この長いパス構文を直接サポートしています。 古いバージョンでは、長いパス構文と Unicode Win32 API を使用した手動実装が必要です。
.NET Core および .NET
.NET Core 以降の .NET バージョンは長いパスをネイティブにサポートし、必要に応じて長いパス構文を自動的に適用します。
重要な考慮事項
他のアプリケーションおよび Windows シェルとの互換性は非常に重要です。 一部の API は長いパスをサポートしていない場合があります。 さらに、.NET Framework はすべての場合においてこの構文を完全にはサポートしていない可能性があるため、\?\
構文を使用するパスでは直接 Windows API 呼び出しが必要になる場合があります。
以上が.NET で 259 文字を超えるパスを持つファイルにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。