답변:
최대 경로 길이 (MSDN에서)
Windows API에서 (다음 단락에서 설명하는 일부 예외) 경로의 최대 길이는 MAX_PATH이며 260 자로 정의됩니다 . 로컬 경로는 드라이브 문자, 콜론, 백 슬래시, 백 슬래시로 분리 된 구성 요소 및 종료 널 문자의 순서로 구성됩니다. 예를 들어, 드라이브 D의 최대 경로는 "D : \ <일부 256 자 경로 문자열> <NUL>"입니다. 여기서 "<NUL>"은 현재 시스템 코드 페이지의 보이지 않는 종료 널 문자를 나타냅니다. (<> 문자는 시각적 선명도를 위해 사용되며 유효한 경로 문자열의 일부가 될 수 없습니다.)
XP 파일 경로-250 자
Vista 파일 경로-260 자
Windows XP를 새로 설치할 때 가장 긴 경로는 152 자입니다.
Windows Vista를 완전 새로 설치 한 경우 가장 긴 경로는 195 자입니다.
Windows XP에서는 최대 255 자의 파일 이름을 허용합니다
Windows Vista에서는 최대 260자를 포함하는 더 긴 파일 이름을 허용합니다.
MAX_PATH
다른 답변에서 알 수 있듯이 Windows 상수 는 260이지만 실제 가장 긴 경로는 32767입니다.
32k는 UNICODE를 사용하는 동안 사용하지만 이제는 최대 경로 길이를 사용해야합니다.
또한 최대 경로 길이에 대해 더 자세히 설명하는 SO에서 내 대답을 살펴볼 수 있습니다 .
"고전적인" 제한은 260 자 : drive letter
+ :\
+ 255 characters of filename
+ \
(또는 반올림) + null terminator
등 다른 답변에서 말했다
그러나 실제 내부 제한은 32767 자이며 완전한 경로\\?\
를 얻기 위해 추가 하면 얻을 수 있습니다.
Windows API에는 최대 총 경로 길이 32,767 자에 대한 확장 길이 경로를 허용하는 유니 코드 버전이있는 많은 기능이 있습니다. 이 유형의 경로는 백 슬래시로 구분 된 구성 요소로 구성되며, 각 함수 의
lpMaximumComponentLength
매개 변수에 리턴 된GetVolumeInformation
값까지이 값이 사용됩니다 (이 값은 일반적으로 255 자임). 확장 길이 경로를 지정하려면"\\?\"
접 두부를 사용하십시오 . 예를 들면 다음과 같습니다"\\?\D:\very long path"
.
때문에 정규화 된 경로는 다음 깊은 디렉토리가 함께 드라이브 문자로 마운트하여 액세스 할 수 있습니다 사용할 수없는 몇 가지 이유에 만약 subst
/ diskpart
또는 만들어 접합 / 심볼릭 링크 경로를 단축
Windows 10부터 MAX_PATH
기본적으로는 아니지만 한계도 제거되었습니다.
Windows 10 버전 1607
MAX_PATH
부터 일반적인 Win32 파일 및 디렉토리 기능에서 제한이 제거되었습니다. 그러나 새 동작을 선택해야합니다.https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file