아직 여기에 언급되지 않은 트릭을 언급하는 것입니다.
이 파일을 예로 들어 보겠습니다.
C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow\Still Going\I will run out of ideas soon\I have organizational problems\Obsessive compulsive subdirectory disorder\Here is a guid for no good reason\936DA01F-9ABD-4d9d-80C7-02AF85C822A8\Almost there\Tax Returns\2013\2013_tax_return.pdf
이 전체 파일 경로는 290 자입니다. 셸 (Windows 탐색기)과 대부분의 명령 줄 유틸리티는 아마이를 만지지 못할 것입니다.
다음 subst
과 같이 명령을 사용하십시오 .
subst X: "C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow"
이제 파일에 액세스 (및 삭제, 이동 등) 할 수 있습니다.
X:\Still Going\I will run out of ideas soon\I have organizational problems\Obsessive compulsive subdirectory disorder\Here is a guid for no good reason\936DA01F-9ABD-4d9d-80C7-02AF85C822A8\Almost there\Tax Returns\2013\2013_tax_return.pdf
이제 파일 이름은 ~ 235 자 정도이므로 "파일 이름이 너무 깁니다"문제가 더 이상 발생하지 않습니다.
Windows API에는로 알려진 악명 높은 상수가 있습니다 MAX_PATH
. MAX_PATH는 260 자입니다. NTFS 파일 시스템은 실제로 최대 32,767 자의 파일 경로를 지원합니다. 또한 Windows API 함수의 유니 코드 (또는 "와이드") 버전에 액세스하고 경로 접두어를 사용하여 32,767 자의 긴 경로 이름을 계속 사용할 수 있습니다 \\?\
.
MAX_PATH
아주 오래 전에 Windows 세계 에서 돌로 설정되었습니다 . 나는 당시 ANSI 표준과 관련이 있다고 생각하지만 ... 지금 Microsoft가 작성한 일부 프로그램을 포함하여 수천 개의 프로그램과 응용 프로그램이 있기 때문에 Microsoft가 지금 변경하기가 매우 어려운 것 중 하나입니다. MAX_PATH
상수가 갑자기 변경되면 이상한 새로운 방식으로 실패합니다. (버퍼 오버 플로우, 힙 손상 등)