.NET의 259자 파일 경로 제한 해결
.NET에서 파일을 작업할 때 FileInfo
클래스에 의해 부과된 259자 경로 길이 제한을 처리하는 경우가 많습니다. 이 제한은 .NET 버전에 따라 여러 가지 방법을 사용하여 극복할 수 있습니다.
.NET Framework 4.6.2 이상:
.NET Framework 4.6.2 이상을 대상으로 하는 애플리케이션에 대한 가장 간단한 솔루션은 \?
접두사를 사용하는 것입니다. Microsoft의 문서에 따르면 \?C:
(또는 적절한 드라이브 문자)를 경로 앞에 추가하면 최대 32,767자의 경로가 허용됩니다. 예: "\?\C:\Verrrrrrrrrrrry long path"
.
.NET Core 및 .NET의 경우:
.NET Core 및 이후 버전의 .NET은 긴 경로를 자동으로 지원하므로 수동 해결이 필요하지 않습니다. 프레임워크는 필요한 긴 경로 구문을 내부적으로 처리합니다.
4.6.2 이전 .NET Framework 버전의 경우:
이전 .NET Framework 버전(4.6.2 이전)의 경우 P/Invoke를 통해 유니코드 호환 Win32 API 호출과 함께 긴 경로 구문을 사용하는 결합된 접근 방식이 필요합니다. 이는 다음을 통해 달성할 수 있습니다:
<code class="language-csharp">System.IO.Path.Combine("\\?\", System.IO.Path.GetFullPath(path));</code>
이 방법을 사용하려면 Microsoft의 권장 사항에 따라 적절한 긴 경로 호환성을 위해 유니코드 API 기능을 활용해야 한다는 점을 기억하세요.
중요 사항:
긴 경로 지원이 활성화된 경우에도 Microsoft의 BCL 팀 블로그는 잠재적인 미묘함을 강조합니다. 일부 Windows API는 긴 경로에서 다르게 동작할 수 있습니다. 경로 정규화 실패 및 특정 응용 프로그램 또는 Windows 셸 자체와의 비호환성과 같은 문제가 발생할 수 있습니다. Microsoft는 향후 Windows 릴리스에서 확장된 파일 경로에 대한 호환성 및 지원을 개선하기 위해 적극적으로 노력하고 있습니다.
위 내용은 .NET에서 259자를 초과하는 파일 경로를 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!