.NET アプリケーションにおける長いファイル パスの問題に対処する
.NET アプリケーションは、標準の 259 文字制限を超えるファイル パスを操作すると問題が発生する可能性があります。 この制限は、組み込み FileInfo
クラスと、P/Invoke 経由でアクセスされるネイティブ Win32 関数の両方に影響します。
過度に長いファイル パスを管理するための効果的な戦略は次のとおりです:
ロングパス構文の活用 (.NET 4.6.2 以降):
.NET Framework 4.6.2 以降のバージョンの場合は、パスの前に「?」を付けます。 (例: "?C:...")。これにより、パスの正規化がバイパスされ、完全なパスがファイル システムに直接渡されるようになります。
Unicode 準拠の Win32 API の使用 (.NET 4.6.2 より前):
.NET 4.6.2 より前のバージョンでは、「?」を結合します。 P/Invoke を通じてアクセスされる Win32 API 関数 (GetFileAttributesExW
など) の Unicode バージョンのプレフィックス。これらの関数は、拡張パス長を明示的にサポートします。
.NET Core の組み込みサポート:
.NET Core 以降のバージョンは本質的に長いパスを処理するため、手動による回避策は必要ありません。
重要な考慮事項:
長いパスを使用する場合は、次の制限事項に留意してください。
LoadLibrary
などの一部の Windows API は、パスが 260 文字を超えると失敗する可能性があります。以上が.NET で長すぎるファイル パスを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。