왜 파일 경로 길이 제한을 풀어야 할까?
Windows에서는 기본적으로 파일 경로 길이가 260자로 제한되어 있습니다. 이 제한은 파일 경로(드라이브 문자 포함) + 파일 이름 + 확장자를 모두 포함하는 길이입니다. 그러나 최근 대용량 데이터 관리, 깊은 디렉터리 구조를 활용하는 개발 환경, 자동화된 파일 생성 시스템 등의 증가로 인해 이 제한이 불편함을 초래하고 있습니다.
예를 들어, 소프트웨어 개발자가 빌드 시스템을 운영할 때, 자동으로 생성되는 경로가 길어져 260자를 초과할 경우 오류가 발생할 수 있습니다. 또한, 백업 및 데이터 저장 시에도 긴 경로로 인해 문제가 생길 수 있습니다.
또한 이러한 문제를 해결하기 위해 Windows 10 1607 버전부터 NTFS 파일 시스템에서 경로 길이 제한을 해제할 수 있는 기능이 추가되었습니다.
왜 260자로 제한되었을까?
이 제한은 Windows의 오래된 API인 MAX_PATH
설정에서 비롯되었습니다.
초기 Windows 시스템에서는 파일 경로를 제한하는 것이 시스템 안정성과 호환성을 유지하는 데 도움이 되었습니다. 그러나 현대적인 컴퓨팅 환경에서는 이 제한이 불필요하게 불편을 초래하는 요소가 되었습니다
주의사항
- 경로 길이 제한을 해제해도 일부 오래된 애플리케이션은 여전히
MAX_PATH
제한을 따를 수 있습니다. - 레지스트리 변경 후 시스템을 재부팅해야 적용됩니다.
- 그룹 정책 설정을 변경할 경우, 그룹 정책을 업데이트해야 합니다.
레지스트리 편집기를 사용하여 파일이름 및 경로길이 제한 늘리기
Win + R
을 눌러regedit
을 실행합니다.- 다음 경로로 이동합니다:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
LongPathsEnabled
값을 찾아 1로 변경합니다.- 값이 존재하지 않는다면 DWORD(32비트) 값을 새로 생성 후
LongPathsEnabled
로 이름을 지정하고 값을 1로 설정합니다.
- 값이 존재하지 않는다면 DWORD(32비트) 값을 새로 생성 후
- 변경 후 반드시 시스템을 재부팅해야 적용됩니다.
PowerShell을 사용하여 변경하기
추가로 레지스트리 편집기를 직접 실행하는 대신, PowerShell을 이용하여 설정을 변경할 수도 있습니다.
우선 PowerShell(관리자 권한)에서 다음 명령어를 실행합니다.
New-ItemProperty `
-Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" `
-Name "LongPathsEnabled" `
-Value 1 `
-PropertyType DWORD `
-Force
이 명령어는 LongPathsEnabled
값을 1로 변경하는 역할을 합니다. 변경 후 시스템을 재부팅해야 적용됩니다.
변경 적용 및 검증
설정 변경이 제대로 적용되었는지 확인하려면, 긴 파일 경로를 가진 파일을 생성해보면 됩니다.
- 변경 전: 260자를 초과하는 파일 경로를 만들면
DirectoryNotFoundException
오류 발생 - 변경 후: 동일한 긴 경로를 가진 파일을 생성하면 정상적으로 동작함
또한, 레지스트리 값을 확인하여 적용 여부를 직접 검증할 수도 있습니다.
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name LongPathsEnabled
위 명령어를 실행했을 때 LongPathsEnabled
값이 1로 설정되어 있으면 적용된 것입니다.
Windows에서 기본적으로 적용된 260자 파일 경로 제한은 과거의 유산이지만, 최신 버전에서는 이를 해제하여 더욱 유연하게 파일을 관리할 수 있습니다.
하지만 이렇게 설정해서 윈도우11 및 윈도우10 등에서 파일이름이나 경로제한이 260자에서 그 이상으로 늘어났다고 하더라도 웹서버나 FTP를 통해 파일을 업로드 및 다운로드 할 때에는 오류가 발생할 수 있기 때문에 파일경로를 무조건 늘리느것이 좋지 않으니 사용 시 유의하시길 바랍니다.