빨간색 에러들

[Windows C++] 파일 최대 경로 길이 제한

vhxpffltm 2023. 8. 29. 22:17

먼저, 이게 나온게..

 

전처리 경로의 파일을 찾다 나온것인데...

 

상대 경로로 지정될때, 파일을 찾을 수 없다고 한다...

그런데 260자가 넘어가도 경로를 지정하면 잘 된다.

 

../  |  ./ 와 같은 슬래시 및 마침표를 적용한 것은 사용할 수 없다는 것이 MS의 설명이다.

 

최대 경로가 260자가 넘어가면 접두어에 \\?\ 이 사용되며 이것이 적용된 이상 슬래시와 마침표는 사용할 수 없다..

 

https://learn.microsoft.com/ko-kr/windows/win32/fileio/maximum-file-path-limitation?tabs=registry 

 

최대 경로 길이 제한 - Win32 apps

최대 경로 길이 제한.

learn.microsoft.com

 

이를 풀어주는 것은 쉽게 찾을 수 있듯이 레지스트리 값을 풀어주어 최대 경로 길이를 제한해주면 된다.

이것은 찾아보면 쉽게 할 수 있다.

 

실제로 260자가 넘어가는 경로가 어떻게 되는지 CMD로 확인하면 아래와 같다.

 

 

CMD에서 해당 경로에 절대 엑세스할 수 없고 접두어로 \\?\ 을 사용해야 한다.

아 CMD 에서는 UNC 경로를 지원하지 않으니 파워쉘로 실행하면 해당 커맨드가 작동한다.

 

파워쉘로 확인해보면, \\?\ 접두사가 붙은 경로는 슬래시 등의 디렉토리 상대 경로를 지원하지 않으므로 실패한다.

하지만, 그런 경우가 아니라면 아래 처럼 cd 명령어가 올바르게 작동하는 것을 확인할 수 있다.

 

다음엔 이 이슈를 해결해보도록 한다.