\/:*와 같은 특수 문자를 사용하여 폴더 이름이나 파일 이름을 만드는 방법은 무엇입니까? " < > |

\/:*와 같은 특수 문자를 사용하여 폴더 이름이나 파일 이름을 만드는 방법은 무엇입니까? " < > |

내 문제는 \ / : * ?와 같은 특수 문자를 사용하여 폴더나 파일 이름을 지정할 수 없다는 것입니다. " < > | Windows 기반 OS에서는 이러한 유형의 문자가 포함된 파일/폴더의 이름을 지정하는 것이 나에게 매우 중요합니다.

나는 이미 이 문제에 대해 많은 사이트를 검색하고 참조했지만 모두 절망적입니다. 또한 Microsoft 지원 페이지를 읽었는데 다른 문자를 사용할 것을 제안합니다. 이것은 그 링크입니다.https://support.microsoft.com/en-us/kb/177506

나는 이미 숫자 패드 키에서 Alt 버튼 + 이러한 유형의 특수 문자에 대한 ASCII 코드 번호를 시도했습니다. 예를 들어 파일/폴더 이름을 바꾸고 Alt+60(< 문자의 경우)을 누릅니다. 여전히 파일 이름에 다음 중 하나를 포함할 수 없다는 메시지가 표시됩니다. 문자: \ / : * ? " < > |

이러한 유형의 특수 문자를 사용하여 파일/폴더 이름을 지정할 수 있도록 적합한 솔루션을 제안해 주세요.

답변1

이 문자를 포함하는 파일/폴더의 이름을 지정하는 것은 나에게 매우 중요합니다.

그것은 당신에게 중요할 수도 있지만, 이를 버리고 문제를 해결하기 위한 다른 방법을 찾아야 합니다.

파일 이름을 처리하는 Windows OS 함수 호출에서는 이러한 문자가 허용되지 않습니다.

다른 용도로 사용되기 때문에 특별히 허용되지 않습니다.

  • \- 경로 구분 기호로 사용하도록 예약되어 있으며탈출하다성격
  • /- 경로 구분자로 사용하기 위해 예약됨
  • :- 드라이브 이름 구분 기호로 사용하도록 예약되어 있습니다.
  • *- 다음 ?용도로 사용하도록 예약됨와일드카드문자
  • "- 다음 용도로 예약됨인용하다공백이 포함된 이름
  • <, >|- 명령으로 사용하도록 예약되어 있습니다.리디렉션운영자

물론 다른 운영 체제를 사용하여 이러한 문자가 포함된 이름으로 파일을 만들 수 있습니다(해당 운영 체제가 Windows 파일 시스템을 읽고 쓸 수 있는 경우).

그러나 Windows 프로그램을 사용하여 해당 파일에 대해 아무 작업도 수행할 수 없으며 파일 이름을 이해하지 못하고 오류가 발생합니다.


파일, 경로 및 네임스페이스 이름 지정

명명 규칙

다음 기본 규칙을 사용하면 응용 프로그램이 파일 시스템에 관계없이 파일 및 디렉터리에 대한 유효한 이름을 만들고 처리할 수 있습니다.

...

다음을 제외하고 유니코드 문자 및 확장 문자 세트(128-255)의 문자를 포함하여 현재 코드 페이지의 모든 문자를 이름에 사용하십시오.

  • 다음 예약 문자:

    < (less than)
    > (greater than)
    : (colon)
    " (double quote)
    / (forward slash)
    \ (backslash)
    | (vertical bar or pipe)
    ? (question mark)
    * (asterisk)
    
  • 정수 값 0, 때로는 ASCII NUL 문자라고도 합니다.
  • 정수 표현이 1부터 31까지의 범위에 있는 문자. 단, 이러한 문자가 허용되는 대체 데이터 스트림은 제외됩니다. 파일 스트림에 대한 자세한 내용은 파일 스트림을 참조하세요.
  • 대상 파일 시스템에서 허용하지 않는 기타 문자입니다.

원천파일, 경로 및 네임스페이스 이름 지정


하지만 어쨌든 나는 이것을 정말로 하고 싶다.

설치하다시그윈을 사용하고 touch.

모든 가능성을 테스트하지는 않았지만 다음 작업을 수행했습니다.

touch :
touch \|
touch \"
touch \>

예제 출력:

DavidPostill@Hal /f/test/impossible
$ ll
total 0
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:03 '"'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 :
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 '|'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:07 '>'

보시다시피 Windows에서는 사용할 수 없습니다.

F:\test\impossible>dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\impossible

10/08/2016  21:07    <DIR>          .
10/08/2016  21:07    <DIR>          ..
10/08/2016  21:03                 0 
10/08/2016  21:02                 0 
10/08/2016  21:07                 0 
10/08/2016  21:02                 0 
               4 File(s)              0 bytes
               2 Dir(s)  1,772,601,536,512 bytes free

여기에 이미지 설명을 입력하세요

답변2

자신만의 글꼴 세트를 만드세요. 사용하지 않는 일부 문자를 예약된 문자의 이미지로 교체하세요.

답변3

Windows에서는 해당 문자로 파일을 만들 수 없습니다. 해결책이 없습니다. 이러한 문자는 Win32 API에서 금지됩니다.

Win32는 POSIX 네임스페이스의 하위 집합이며 대소문자를 구분하지 않습니다. 다음을 제외한 모든 유니코드 문자를 사용합니다: '"' '*' '/' ':' '<' '>' '?' '\' '|' NB 이름은 점 '.' 또는 공백 ''으로 끝날 수 없습니다.

--http://dubeyko.com/development/FileSystems/NTFS/ntfsdoc.pdf

관련 정보