Windows 경로 길이 제한 260자 복사 오류 해결: LongPaths 활성화 방법

이 글의 목적은 Windows에서 경로 길이 제한(260자) 때문에 파일 복사·이동이 실패하는 문제를 이해하고, LongPaths 기능 활성화 및 우회 방법을 통해 실무 환경에서 안정적으로 파일을 관리할 수 있도록 돕는 것이다.

1. Windows 경로 길이 제한 개념 이해

Windows 파일 시스템에서 흔히 말하는 경로 길이 제한은 전통적으로 MAX_PATH = 260자 제약을 의미한다. 여기서 경로 길이는 드라이브 문자부터 파일 이름 전체까지의 문자열 길이를 말하며, 예를 들어 C:\Users\user\Documents\프로젝트\...와 같이 전체 문자열이 260자를 넘으면 일부 애플리케이션에서 파일 생성·복사·이동·삭제가 실패한다.

최근 버전의 Windows는 내부적으로 더 긴 경로를 지원하지만, 여전히 많은 프로그램이 오래된 API 규칙을 따라 260자 제한을 가정하고 동작하기 때문에 현장에서 문제를 자주 경험한다. 특히 다음과 같은 상황에서 자주 발생한다.

  • 깊게 중첩된 폴더 구조를 사용하는 프로젝트 폴더 백업 시도
  • 빌드 도구, 패키지 관리자(Node.js의 node_modules 등)가 매우 긴 하위 폴더를 생성한 경우
  • 네트워크 드라이브나 동기화 클라이언트(OneDrive, Dropbox 등) 경로가 길어지는 경우

이 때 탐색기나 복사 도구에서 다음과 같은 메시지를 볼 수 있다.

  • “대상 경로 이름이 너무 깁니다”
  • “경로가 너무 길어 복사할 수 없습니다”
  • “The file name(s) would be too long for the destination folder”
주의 : 일부 프로그램은 길이 제한에 걸려도 명확한 오류 메시지를 출력하지 않고 단순히 “복사 실패” 또는 “액세스 거부” 등으로만 표시할 수 있으므로, 경로 길이도 항상 의심해야 한다.

2. LongPaths 기능과 지원 버전

Windows 10 이후부터는 레지스트리와 그룹 정책을 통해 긴 경로(긴 파일 이름)를 허용하는 LongPaths 기능을 활성화할 수 있다. 이 기능을 활성화하면, 긴 경로를 지원하도록 개발된 최신 애플리케이션에서 MAX_PATH 제한을 우회하여 32,767자까지의 경로를 사용할 수 있다.

실무에서 LongPaths 설정을 검토해야 하는 대표적인 버전은 다음과 같다.

  • Windows 10 버전 1607(Anniversary Update) 이상
  • Windows 11 전 버전
  • Windows Server 2016 이상

다만 운영체제에서 LongPaths를 허용하더라도, 개별 애플리케이션이 오래된 API를 사용하거나 경로 길이를 자체적으로 제한하는 경우에는 여전히 260자 제한을 받을 수 있다. 따라서 OS 설정과 함께 사용하는 도구의 특성을 함께 고려해야 한다.

3. LongPaths 활성화 전 확인 사항

3.1 현재 복사 실패 상황 점검

경로 길이 제한 문제인지 확인하기 위해 다음 항목을 점검한다.

  • 일부 파일은 복사되지만 특정 경로에서만 오류가 발생하는지 확인한다.
  • 문제가 되는 파일의 전체 경로를 복사하여 메모장 등에서 문자 수를 대략 확인한다.
  • 다른 드라이브(루트에 가까운 위치)로 복사하면 정상 동작하는지 비교한다.

경로가 짧아졌을 때 정상적으로 복사된다면 LongPaths 활성화 또는 폴더 구조 단순화가 필요한 상태이다.

3.2 조직 정책 및 호환성 고려

기업 환경에서는 그룹 정책(GPO)이나 보안 규칙에 따라 레지스트리 편집이나 LongPaths 활성화를 제한할 수 있다. 이 경우 다음 순서로 진행하는 것이 안전하다.

  1. 사내 IT 관리자 또는 시스템 관리자에게 LongPaths 활성화 가능 여부를 문의한다.
  2. 서버나 공유 폴더에 적용하기 전 테스트용 PC에서 먼저 설정을 적용하여 애플리케이션 호환성을 확인한다.
  3. 백업 및 복구 계획을 세운 후 레지스트리를 수정한다.
주의 : 레지스트리 편집은 잘못 설정할 경우 시스템에 영향을 줄 수 있으므로, 변경 전 반드시 시스템 복원 지점 생성 또는 전체 백업을 고려해야 한다.

4. 로컬 그룹 정책 편집기를 통한 LongPaths 활성화

Windows Pro, Enterprise, Education 에디션 등에서 사용할 수 있는 방법이다. Home 에디션에서는 로컬 그룹 정책 편집기(gpedit.msc)가 기본 제공되지 않는 경우가 많다.

4.1 설정 경로

  1. Win + R 키를 눌러 실행 창을 연다.
  2. gpedit.msc를 입력하고 Enter 키를 눌러 로컬 그룹 정책 편집기를 실행한다.
  3. 왼쪽 트리에서 다음 경로로 이동한다.
    • 컴퓨터 구성 → 관리 템플릿 → 시스템 → 파일 시스템
  4. 오른쪽 항목에서 “Win32 긴 경로 사용 허용(Enable Win32 long paths)” 또는 유사한 이름의 정책을 찾는다.

4.2 정책 값 변경

  1. “Win32 긴 경로 사용 허용” 항목을 더블 클릭한다.
  2. 정책 창에서 다음과 같이 설정한다.
    • 구성되지 않음사용으로 변경한다.
    • 적용 후 “확인”을 클릭한다.
  3. 정책 변경 후 시스템을 재시작하거나, 명령 프롬프트에서 gpupdate /force를 실행하여 정책을 즉시 적용한다.
주의 : 그룹 정책에서 “사용”으로 설정해도, 일부 오래된 32비트 애플리케이션이나 자체 제한을 가진 프로그램은 여전히 260자 제한을 유지할 수 있다.

5. 레지스트리 편집기로 LongPaths 직접 활성화

로컬 그룹 정책 편집기가 없거나, 직접 레지스트리에서 제어해야 하는 환경에서는 레지스트리 편집을 통해 LongPaths를 활성화할 수 있다. 이 방법은 관리자 권한이 필요하다.

5.1 레지스트리 경로와 값

다음 레지스트리 키를 수정한다.

경로: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 값 이름: LongPathsEnabled 형식: REG_DWORD 값 데이터: 1 (활성화), 0 (비활성화) 

5.2 수동 설정 절차

  1. Win + Rregedit 입력 후 Enter 키를 눌러 레지스트리 편집기를 실행한다.
  2. 좌측 트리에서 다음 순서로 이동한다.
    • HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem
  3. 오른쪽 창에서 LongPathsEnabled 값을 찾는다.
    • 값이 존재하지 않으면 빈 공간에서 마우스 오른쪽 버튼 클릭 → 새로 만들기 → DWORD(32비트) 값을 선택하고 이름을 LongPathsEnabled로 지정한다.
  4. LongPathsEnabled 값을 더블 클릭하여 다음과 같이 수정한다.
    • 표시 형식을 16진수 또는 10진수 중 하나로 설정한다.
    • 값 데이터를 1로 입력한다.
  5. 레지스트리 편집기를 닫고 시스템을 재부팅하여 변경 사항을 반영한다.
주의 : 도메인 환경에서는 도메인 그룹 정책이 로컬 레지스트리 설정을 덮어쓸 수 있다. 재부팅 후 값이 다시 0으로 돌아가는 경우 도메인 GPO를 확인해야 한다.

6. LongPaths 활성화 후 검증 방법

6.1 테스트용 긴 경로 생성

LongPaths가 실제로 동작하는지 확인하기 위해 테스트용 폴더 구조를 만들 수 있다. 예시로 PowerShell을 사용하여 긴 경로를 생성하는 방법은 다음과 같다.

PowerShell을 관리자 권한으로 실행한 후 예시 명령:
$base = "C:\LongPathTest"
New-Item -Path $base -ItemType Directory -Force | Out-Null

긴 폴더 이름 반복 생성
for ($i = 1; $i -le 20; $i++) {
$base = Join-Path $base ("폴더이름이아주아주길어지는테스트_" + $i)
New-Item -Path $base -ItemType Directory -Force | Out-Null
}

긴 이름의 파일 생성
$longFile = Join-Path $base "이것은_아주_긴_파일_이름_테스트용_파일입니다_1234567890.txt"
"test" | Out-File -FilePath $longFile -Encoding UTF8

이 구조가 정상적으로 생성되고 탐색기 또는 복사 도구에서 오류 없이 다른 위치로 복사된다면 LongPaths 설정이 효과를 내고 있다고 볼 수 있다.

6.2 기존 문제 경로 재복사

문제가 발생했던 실제 경로에 대해 다음과 같이 재검증한다.

  1. 원본과 대상 경로를 동일하게 두고 복사를 다시 시도한다.
  2. 이전에는 복사되지 않던 파일이 오류 없이 처리되는지 확인한다.
  3. 여전히 실패하는 경우, 사용하는 애플리케이션(압축 프로그램, 백업 도구 등)을 변경하여 비교 테스트를 진행한다.

7. LongPaths를 활성화해도 여전히 실패하는 경우

OS 수준에서 LongPaths를 허용하더라도 다음과 같은 이유로 복사 실패가 지속될 수 있다.

  • 복사 도구가 오래된 API를 사용하여 여전히 260자 제한을 적용하는 경우
  • 네트워크 공유, NAS, 클라우드 동기화 등의 서버 측 파일 시스템이 경로 길이를 별도로 제한하는 경우
  • 압축 파일 형식이나 백업 포맷이 경로 길이에 제한을 가지고 있는 경우

7.1 긴 경로를 잘 처리하는 도구 사용

Windows 환경에서 비교적 긴 경로를 안정적으로 다루는 대표적인 도구는 다음과 같다.

  • Robocopy : Windows에 기본 포함된 고급 복사 도구이다.
  • PowerShell Copy-Item : 최신 API를 사용하는 경우 긴 경로 처리에 유리하다.
  • 일부 서드파티 파일 매니저 및 백업 도구: 긴 경로 지원 여부를 문서에서 확인 후 사용한다.

예를 들어 Robocopy를 사용한 복사 명령은 다음과 같다.

robocopy "C:\원본경로" "D:\대상경로" /E /R:2 /W:2 

/E는 하위 폴더를 포함하여 비어 있는 디렉터리도 복사하는 옵션이고, /R, /W는 재시도 횟수와 대기 시간을 줄여 테스트를 빠르게 수행하기 위한 예시이다.

7.2 UNC 접두사(\\?\) 사용

일부 시나리오에서는 UNC 접두사를 사용하여 긴 경로를 직접 지정할 수 있다. 예를 들어 다음과 같은 형식이다.

\\?\C:\매우_긴_경로\하위폴더\...\파일.txt 

이 형식은 시스템에 긴 경로를 그대로 전달하여 내부 제한을 우회하는 용도로 사용되며, 특정 도구나 스크립트에서만 적용할 수 있다. 탐색기 주소창에서 직접 사용하는 것은 버전에 따라 동작이 다를 수 있다.

주의 : UNC 접두사 사용은 개발자용·자동화 스크립트용으로 활용되는 경우가 많으며, 일반 사용자 환경에서는 관리와 가독성이 떨어지므로 남용하지 않는 것이 좋다.

8. 폴더 구조 설계로 경로 제한 원천 차단

LongPaths 기능 활성화는 증상 완화에 가깝고, 근본적인 해결을 위해서는 폴더 구조와 이름 정책을 개선해야 한다. 특히 대규모 프로젝트나 공용 파일 서버에서는 다음 원칙을 적용하는 것이 좋다.

8.1 폴더 이름 길이 최적화

  • 상위 폴더명은 가능하면 15자 이내로 유지한다.
  • 중복 정보를 폴더 이름에 반복해서 넣지 않는다.
    • 예: 프로젝트A_최종_최종 대신 프로젝트A\최종 구조를 사용한다.
  • 날짜, 버전 정보는 폴더의 한 단계에서만 관리한다.
    • 예: 2025-프로젝트A\v1.0\...

8.2 공용 정책 수립

조직 내에서 다음과 같은 정책을 문서화해 배포하면 경로 길이 문제를 미리 예방할 수 있다.

  • 최대 허용 폴더 깊이(예: 8~10단계 이내) 정의
  • 폴더·파일명에 사용 가능한 문자와 길이 규칙 정의
  • 자동 백업·동기화 프로그램의 루트 위치(최대한 루트 가까이) 통일
관리 항목 권장 기준 비고
최대 폴더 깊이 10단계 이하 공유 서버·로컬 동일 적용
상위 폴더명 길이 15자 이내 프로젝트 코드 사용 권장
파일명 길이 50자 이내 중요 메타정보만 포함
자동 백업 루트 C:\ 또는 D:\ 하위 1~2단계 예: D:\Backup\...

9. 경로 길이 제한 문제 해결 실무 시나리오

9.1 개발 프로젝트 아카이브 복사 실패

상황: 개발팀에서 소스 코드와 빌드 산출물이 섞여 있는 폴더를 NAS로 백업하려고 할 때 일부 파일이 복사되지 않고 오류가 발생한다. Node.js, Java, .NET 등 복합 프로젝트로 인해 bin, obj, node_modules 폴더가 깊게 중첩되어 있다.

대응 절차 예:

  1. 백업 대상에서 빌드 산출물 폴더(bin, obj, node_modules 등)를 제외하도록 백업 정책 수정
  2. Windows에서 LongPaths 활성화(그룹 정책 또는 레지스트리)
  3. 백업 도구를 Robocopy 또는 긴 경로 지원 백업 솔루션으로 전환
  4. 프로젝트 템플릿에 폴더명 규칙 및 경로 길이 기준 반영

9.2 클라우드 동기화 폴더에서 동기화 오류 발생

상황: OneDrive 또는 다른 동기화 클라이언트를 사용하는데, 경로가 너무 길어 일부 파일이 동기화되지 않는다는 알림이 지속적으로 표시된다.

대응 절차 예:

  1. 동기화 루트 폴더를 최대한 상위 경로로 이동한다.
    • 예: C:\Users\사용자\OneDrive\회사공유 대신 D:\OneDrive로 변경
  2. LongPaths 활성화로 OS 수준 제한을 완화한다.
  3. 동기화 클라이언트 설정에서 동기화 제외 폴더를 지정하여 경로가 깊은 영역을 제외한다.
  4. 동일 문제가 계속 발생하는 경우, 문제 폴더를 별도 압축 파일로 관리하거나 구조를 단순화한다.
주의 : 클라우드 서비스별로 자체 경로 길이 제한이 존재할 수 있으므로, 단말에서 LongPaths를 활성화해도 서비스 측 제한을 동시에 확인해야 한다.

FAQ

Q1. LongPaths를 켰는데도 탐색기에서 여전히 복사 실패가 발생한다.

A1. LongPaths는 운영체제와 API 수준에서 긴 경로를 허용하지만, 탐색기와 일부 내장 기능이 항상 최신 방식으로 동작하는 것은 아니다. 이 경우 Robocopy, PowerShell, 긴 경로를 지원하는 파일 매니저 등 다른 도구를 사용해 동일 작업을 시도해 보는 것이 좋다.

Q2. 레지스트리에서 LongPathsEnabled 값을 1로 변경했는데 다시 0으로 돌아간다.

A2. 도메인 환경에서는 중앙에서 배포되는 그룹 정책이 로컬 설정을 덮어쓸 수 있다. 이 경우 도메인 컨트롤러에서 적용된 GPO를 확인해야 하며, IT 관리자에게 정책 추가 또는 예외 적용을 요청해야 한다.

Q3. Windows Home 에디션에서 gpedit.msc가 없는데 어떻게 설정해야 하나?

A3. Home 에디션에서는 로컬 그룹 정책 편집기가 기본 제공되지 않는 경우가 많다. 이 때는 레지스트리 편집기(regedit)를 사용하여 LongPathsEnabled 값을 직접 추가·수정하는 방식으로 설정할 수 있다. 레지스트리 편집 전에는 반드시 백업을 수행하는 것이 좋다.

Q4. LongPaths를 활성화하면 기존 프로그램에 문제가 생길 수 있나?

A4. 대부분의 최신 프로그램에서는 문제가 되지 않지만, 일부 레거시 애플리케이션이 긴 경로를 가정하지 않고 동작할 수 있다. 실제 운영 환경에 도입하기 전 테스트용 PC에서 충분히 검증하고, 문제가 발생하는 프로그램이 있는지 확인한 후 단계적으로 적용하는 것이 안전하다.

Q5. 조직 전체 파일 서버에서 경로 길이 문제를 줄이는 가장 효과적인 방법은?

A5. 서버 OS에서 LongPaths를 활성화하는 것과 동시에, 폴더 구조·파일명 규칙을 문서화하여 전사적으로 통일하는 것이 가장 효과적이다. 프로젝트별 템플릿, 백업 정책, 동기화 정책에 동일 기준을 반영하면 장기적으로 경로 길이 문제 발생 빈도를 크게 줄일 수 있다.