
Windows, 특히 이름이 긴 폴더 및 파일을 충분히 오래 사용하면 이상한 오류가 발생합니다. Windows는 폴더 경로 나 파일 이름이 너무 길어서 새 대상으로 이동하거나 삭제할 수 없다고보고합니다. 거래는 무엇입니까?
안녕, 괴짜!
다른 날에는 컴퓨터에서 일부 파일을 재구성하고 폴더를 만들었습니다. 그런 다음 일부 파일을 폴더로 이동할 때 결과 폴더 경로가 너무 길다는 메시지가 표시됩니다. 나는 혼란 스러웠다. DOS 이후의 모든 단일 OS는 긴 파일 이름을 지원하지만 Windows는 경로가 너무 길다고 주장합니다. 왜 이런 일이 발생합니까?
진심으로
Mr. Disorganized
당신이 겪고있는 문제는 불행히도 두 시스템의 교차로입니다.이 경우 오류가 발생합니다. 오류의 정확한 위치를 이해하려면 긴 파일 이름 (LFN)의 역사와 솔루션을 조사하기 전에 Windows가 이들과 상호 작용하는 방식을 파헤쳐 야합니다.
Windows 95에서는 기본 MS-DOS 아키텍처를 통해 긴 파일 이름이 도입되었습니다. 새로운 LFN 시스템은 최대 255 자의 파일 및 디렉토리 이름을 허용했습니다. 이름이 8 자 및 3 자리 확장명으로 제한되었지만 SFN (Short Filename)으로도 알려져 있기 때문에 이는 일반적으로 8.3 파일 이름 지정이라고하는 이전 파일 이름 시스템의 확장입니다. 당신이 상상할 수 있듯이, 당시에는 여전히 DOS 기반 앱이 많이 있었고 새로운 LFN과 기존 SFN이 서로 잘 어울릴 수 있도록 몇 가지 두통이있었습니다. abcdef ~ 1.txt와 같이 이상하게 잘린 파일이있는 오래된 디스켓이나 CD-ROM을 본 적이 있다면 일부 SFN 사용 레거시 응용 프로그램에서 일부 오래되고 지원되지 않는 LFN (abbcdefghijk 등)으로 파일 이름이 줄어 듭니다. txt).
그러나 우리는 1990 년대 중반부터 먼 길을 가졌으며, 긴 파일 이름 전체는 (대부분) 확고하게 다뤄졌습니다. 지난 10 년 동안 Windows 버전을 실행하는 경우 DOS / Windows 95 일에 다시 사용했던 것처럼 파일 이름 길이 충돌이 발생하지 않았을 가능성이 큽니다. 즉, 디스크 정리 프로젝트에서 발견 한대로 여전히 딸꾹질이 발생합니다. 그런데 왜? Windows의 긴 파일 이름 시스템이 구성 요소 당 최대 255 자의 폴더 및 파일 이름을 지원하는 경우 어떤 벽을 사용하고 있습니까? NTFS는 폴더와 파일 이름을 총 경로 길이 32,767 자까지 지원하므로 NTFS (대부분의 최신 Windows 시스템에서 사용하는 파일 시스템)를 비난 할 수 없습니다. 이는 대부분의 사용자에게 필요한 일반적인 디렉토리 구조를 훨씬 능가합니다.
LFN / NTFS 시스템의 상단에는 MAX_PATH 변수라는 인공적인 제한이 있습니다. MAX_PATH 변수는 Windows의 전체 디렉토리 구조가 드라이브 문자, 콜론, 백 슬래시 및 널 백래시를 포함하여 총 260자를 초과 할 수 없도록 지정합니다. 따라서 실제 실제 MAX_PATH는 256 자입니다. C : your-256-character-path .
따라서 컴퓨터를 정리할 때 발생한 경로는 이미 긴 경로를 가진 디렉토리 (폴더 이름이 길거나 파일 이름이 길거나 둘 다 때문에)가 있고 하나 이상을 이동하려고 할 때입니다. 경로가 긴 다른 디렉토리에 해당 디렉토리가 있으면 경로 이름의 총 길이가 MAX_PATH 변수에 의해 지정된 260자를 초과했습니다.
지금, 당신은“아하! MAX_PATH 변수를 변경하고 문제를 해결해 보겠습니다.”아아, 간단하지 않습니다. MAX_PATH 변수는 본질적으로 Windows에 하드 코딩되어있을뿐만 아니라, 엄청난 번거 로움을 겪어도 가치가 없어 질 것입니다. 너무 많은 응용 프로그램은 경로 변수가 Windows에서 오랫동안 지정한 것으로 생각합니다. 우리는 엄청난 혼란을 일으키지 않고 그것을 바꿀 수 없습니다.
어디가 당신을 떠나나요? 가장 간단한 해결책은 경로 데이터를 편집하는 것입니다. 예를 들어 웹에서 저장하는 데 사용 된 응용 프로그램 / 확장 프로그램이 기사의 전체 제목 + 기사 리드 인 디렉토리를 만든 경우 저장 한 기사가 많이있는 경우 파일 이름 자체는 전체 제목입니다. 기사 + 기사 리드의 경우 단일 저장으로 MAX_PATH를 누르거나 초과하는 것이 실제로 간단합니다. 이러한 거대한 폴더 및 기사 제목을보다 합리적인 크기로 편집하면 문제를 쉽게 해결할 수 있습니다.
경로가 긴 파일 수가 많고 모두 편집하지 않으려는 경우 (또는 원하는 경우) 지우다 MAX_PATH 변수에 의해 제한 될 때 Windows가 처리하기에는 너무 긴 오래된 디렉토리), 명령 행 해결 방법이 있습니다. Windows는 MAX_PATH 변수에 의해 제한되지만 Windows 엔지니어는 사용자가 더 긴 경로 이름을 처리해야하는 상황이 있음을 깨달았습니다. 따라서 Windows API에는 매우 긴 경로를 처리하는 기능이 있습니다.
해당 API를 활용하고 다루기 힘든 폴더 / 파일 이름에서 명령 줄 도구를 사용하려면 몇 가지 추가 문자로 디렉토리 이름을 추가하면됩니다. 예를 들어, 삭제하려는 거대한 디렉토리 구조가 있었지만 (시도 할 때 경로 길이로 인해 오류가 발생한 경우) 다음에서 명령을 변경할 수 있습니다.
rmdir c:documentssome-really-super-long-folder-name-scheme
에:
rmdir \?c:documentssome-really-super-long-folder-name-scheme
열쇠는 \? 파일 경로 시작 전 부분; 이는 Windows에 MAX_PATH 변수에 의해 부과 된 제한을 무시하고 기본 파일 시스템에서 제공 한 / 직접 이해 한대로 제공 한 경로와 상호 작용하도록 지시합니다 (더 긴 경로를 명확하게 지원할 수 있음). 항상 그렇듯이 명령 프롬프트에서주의를 기울여 의도하지 않은 파일이나 디렉토리를 실수로 삭제하지 않도록하십시오.
이 문제에 대한 개요가 궁금하다면 Microsoft Developer Network 라이브러리의 파일 이름, 경로 및 네임 스페이스에서이 기사를 참조하십시오.
기술적 인 질문이 있습니까? ask@howtogeek.com으로 이메일을 보내 주시면 최선을 다해 답변 드리겠습니다.








