1. 개요
파일 이름에는 다음 문자를 사용할 수 없습니다.
A file name can't contain any of the following characters.[1]
Windows에서 폴더 또는 파일 이름에 사용할 수 없는 문자에 대한 정보이다.A file name can't contain any of the following characters.[1]
2. 이유
각 문자는 이미 다른 용도로 쓰이고 있으므로 파일 이름으로 이용할 수 없는데, 이를 정리하면 다음과 같다.문자 | 이유 |
\\ | 디렉터리의 구분자로 쓰인다.[2] |
/ | |
: | C:, D:와 같은 드라이브 기호로 쓰인다. |
* | 와일드 카드로 쓰인다. ?는 한 글자의 의미로 쓰이기도 하며, UNC(Universal Naming Convention)에도 사용된다. |
? | |
" | 경로의 시작과 끝을 나타낸다.[3] |
< | 리다이렉트, 파이프 등 특수 문법에 쓰인다. |
> | |
| |
3. 우회
특수한 방법으로 문자 제한을 우회하거나 유사한 효과를 내는 법이다.3.1. 진짜 특수문자 강제로 넣기
비 Windows OS나 Parted magic 등을 이용하여 강제로 생성하는 방법이 있지만 오류가 발생하니 권장되지 않는다. Hex editor 프로그램인 HxD 등을 사용해도 만들 수 있다.3.2. 비슷한 효과 내기
3.2.1. 전각 문자 또는 닮은꼴 문자 사용
해당 특수문자의 반각 문자는 사용할 수 없지만, 전각 문자는 사용할 수 있다. ㄱ을 쓰고 한자키를 누르거나 한영키처럼 파일 이름을 변경하는 창에서 Alt + = 키를 누르면 반각, 전각 입력이 전환된다. 또 한번 눌러 전각/반각문자 전환을 하지 않으면 이후로도 전각문자가 입력되며(특수문자 뿐만 아니라 알파벳 대소문자도 전각으로 바뀌어 입력되며), :이나 ; 같은 폭이 좁은 문자를 입력하기 전에는 알아채기 힘드니 주의.반각 | 전각 | 닮은꼴 |
\\ | \ | ∖ |
/ | / | ∕ |
: | ∶ | ∶ |
* | * | ∗ |
? | ? | ❓ 또는 ❔ |
" | " | “ 또는 ” |
< | < | 〈 또는 〈 |
\> | > | 〉 또는 〉 |
| | | | ∣ |
3.2.2. desktop.ini
겉보기에 폴더가 한글로 보이는 원리와 같이, 폴더에 대한 설정을 담고 있는 desktop.ini를 이용하는 방법이다.- 원하는 폴더 안에 'desktop.ini' 파일을 만들어준다.
- 메모장으로 연다.
-
[.ShellClassInfo]
를 입력한다. -
다음 줄에
LocalizedResourceName=(폴더이름)
을 입력한다. - 저장하고, 해당 폴더에 속성 > 사용자 지정 > 기본값 복원을 눌러준다.
실제 폴더 이름을 변경하지 않기 때문에, 경로상에서는 원래 이름이 보인다.[4]
4. 그 외 불가능한 경우
- ' .(마침표)' 문자로만 이루어진 이름도 쓸 수 없다. 알파벳이나 숫자와 조합하면 쓸 수 있다.
- 반각 공백 ' '으로 시작하거나 끝나는 이름, .으로 끝나는 이름은 공백과 점이 자동으로 지워진다.
- 윈도우에서는 다음과 같은 예약어도 사용 불가능하다. 대부분 MS-DOS 시절의 예약어로, 지금은 쓰이지 않는 것이 한가득이다.
- CON: 'copy' 명령어 뒤에 붙이면 파일을 생성하는 기능을 한다. 윈도우에서도 명령 프롬프트에서 먹힌다.
- AVX: 시리얼 포트에 연결된 외부기기 관련 명령어다.
- NUL: Bit-bucket device를 뜻한다. 거의 사용되지 않는다.
- PRN: 패러럴 포트에 연결된 외부기기 관련 명령어다. 패러럴 포트에 연결하는것이 대부분 프린터이므로 PRiNt의 약자를 썼다.
- COM0, COM1, ..., COM9: 시리얼 포트의 명칭이다.
- LPT0, LPT1, ..., LPT9: 패러럴 포트의 명칭이다.
- 예약어를 억지로 사용하기
-
명령 프롬포트에 "
md \\.\C:\Users\%username%\Desktop\(폴더이름)
"을 치면 con, aux등도 폴더명으로 만들 수 있다. 이렇게 만든 폴더는 평범한 방법으로는 지워지지 않고 "rd \\.\C:\Users\%username%\Desktop\(폴더이름)
"을 해야 지워진다.