Windows 파일 이름에 쓸 수 없는 문자와 길이 제한
Windows 파일·폴더 이름에는 < > : " / \ | ? * 아홉 문자를 쓸 수 없고, CON·NUL 같은 예약 이름도 피해야 해요. 이름 길이는 한 구성 요소당 255자까지예요. 이름을 바꿀 때 오류가 나거나 다른 OS에서 파일이 열리지 않을 때 이 규칙을 확인하면 돼요.
1. 쓸 수 없는 문자
아래 문자는 파일 이름과 폴더 이름에 넣을 수 없어요.
| 문자 | 이름 |
|---|---|
| < | 보다 작음 |
| > | 보다 큼 |
| : | 콜론 |
| " | 큰따옴표 |
| / | 슬래시 |
| \ | 백슬래시 |
| | | 세로 막대 |
| ? | 물음표 |
| * | 별표 |
문서에는 이 아홉 문자 외에도 정수 값 0(NUL 문자), 정수 값 1~31 범위의 제어 문자, 대상 파일 시스템이 허용하지 않는 문자도 쓸 수 없다고 나와요. 백슬래시는 경로에서 폴더를 나누는 문자로 예약돼 있어서 이름에 쓸 수 없어요.
2. 예약된 이름
CON, PRN, AUX, NUL, COM1COM9, LPT1LPT9는 장치 이름으로 예약돼 있어서 파일 이름으로 쓰지 말라고 안내돼요. 확장명을 붙여도 소용없어요. 문서의 예처럼 NUL.txt는 NUL과 같게 취급돼요. 위 첨자가 붙은 COM¹, LPT² 같은 이름도 예약된 이름으로 처리돼요.
3. 이름의 끝과 시작
- 공백이나 마침표로 이름을 끝내지 마세요. 파일 시스템은 지원할 수 있어도 Windows 셸과 사용자 인터페이스가 지원하지 않는다고 문서에 나와요.
- 마침표로 시작하는 이름(예: .temp)은 허용돼요.
4. 대소문자와 길이
Windows에서는 Oscar, OSCAR, oscar를 같은 이름으로 취급하라고 안내돼요. 드라이브 문자도 D:\와 d:\가 같은 볼륨이에요. NTFS에는 대소문자를 구분하는 옵션이 있지만 기본 동작은 아니에요. POSIX 계열 파일 시스템은 다르게 볼 수 있어서, 다른 OS와 파일을 주고받을 때는 대소문자만 다른 이름을 두지 않는 것이 안전해요.
| 항목 | 기준 |
|---|---|
| 파일·폴더 이름 하나 | NTFS, exFAT, FAT32 모두 유니코드 255자 이하 |
| 전체 경로 (파일 시스템 기준) | 각 구성 요소가 255자 이하인 유니코드 32,760자 |
| 전체 경로 (Windows 10 버전 1607 이전) | 최대 260자(MAX_PATH)로 정의돼 있어요 |
문서에 따르면 그 이후 버전에서는 260자 제한을 없애려면 레지스트리 키를 바꾸거나 그룹 정책 도구를 써야 해요. 설정을 바꾸지 않았다면 경로를 짧게 유지하는 편이 안전해요.
5. 이름이 안 바뀔 때 점검
- 위 아홉 문자가 이름에 들어 있는지 확인해요.
- 이름이 CON, NUL 같은 예약 이름이거나 그 뒤에 확장명만 붙은 것인지 봐요.
- 이름 끝에 공백이나 마침표가 없는지 확인해요.
- 폴더 경로 전체가 너무 길지 않은지 확인해요. 깊은 폴더 안의 긴 이름이 의심되면 상위 폴더 이름부터 줄여 봐요.
| 바꾸기 전 | 바꾼 뒤 |
|---|---|
| 계약서: 최종/수정본?.docx | 계약서_최종_수정본.docx |
| 영수증 * 10월.pdf | 영수증_10월.pdf |
6. 핵심 정리
- < > : " / \ | ? * 문자는 파일·폴더 이름에 쓸 수 없어요.
- CON, PRN, AUX, NUL, COM1
9, LPT19는 확장명을 붙여도 예약 이름이에요. - 이름 끝에 공백이나 마침표를 두지 않아요.
- 대소문자는 기본적으로 구분하지 않고, 구성 요소 하나는 255자 이하예요.
- 전체 경로는 260자 제한(MAX_PATH)을 의식해 짧게 유지해요.