대상 경로가 너무 깁니다. 긴 이름을 가진 파일이 삭제되지 않고 파일 시스템이 그런 긴 이름을 지원하지 않는다는 오류가 나타나면? 소스 경로가 너무 긴 경우 수행할 작업, 이러한 파일을 삭제하는 방법

그건 안 비밀 윈도우 익스플로러 PowerShell을 포함한 대부분의 다른 Windows 응용 프로그램과 마찬가지로 깊이 중첩된 파일 시스템 개체와 함께 작동할 수 없습니다. 260자를 초과하는 경로 길이... 또한 이 제한은 응용 프로그램 수준에서만 존재하며 파일 NTFS 시스템최대 파일 경로 지원 32767 문자.

이 제한은 라이브러리에 의해 부과됩니다. Win32 API, 최대 경로 길이는 260자( 최대 경로 = 260). 일반적으로 경로는 다음 요소로 구성됩니다. + [path_from_256_characters] + [ ] , NTFS에서 하나의 디렉토리/파일의 최대 길이는 유니코드에서 255자입니다. 유니코드 API 함수를 사용할 때 경로를 사용할 수 있습니다. 32767 문자. 덕분에 많은 타사 프로그램(같은 인기 파일 관리자, 예를 들어 멀리그리고 총사령관) 경로 길이가 260자를 초과하는 파일/폴더를 문제 없이 처리합니다.

조언... 이 Win32 API 제한 사항을 해결하고 확장 길이 경로 접두사를 사용하여 파일의 절대 경로를 지정하는 UNC 경로 형식을 사용하여 긴 파일 이름으로 작업할 수 있습니다. \\?\ ... 예를 들어 다음과 같이 \\? \ C: \ SomeLongPath \ LongNameFile.txt

이 제한은 사용자가 SMB 프로토콜을 통해 파일에 네트워크로 액세스하는 경우에도 적용되지 않습니다(이 때문에 사용자 데이터가 있는 파일 서버에서 경로가 긴 디렉토리 구조는 드문 일이 아닙니다). 관리자 서비스 이 서버표준 탐색기 인터페이스를 통해 할 수 없음 윈도우 익스플로러경로가 긴 파일을 관리(삭제/이동)합니다. 이러한 디렉토리에 파일을 생성/복사하려고 하면 오류가 나타납니다.

대상 경로가 너무 깁니다.... 대상 폴더에 대해 파일 이름이 너무 깁니다. 파일 이름을 단축하고 다시 시도하거나 단축 경로가 있는 위치를 시도할 수 있습니다.

다른 프로그램/대화 상자는 자체 방식으로 제한 사항이 있음을 나타낼 수 있습니다.

동의합니다. 2014년이 창 밖에 있다는 것이 재미있습니다. 그리고 우리는 여전히 260자 제한에 대해 이야기하고 있습니다. 최대 길이 Windows의 경로 ... 그러나 더 빨리 보이지 않습니다. 급격한 변화예상되지 않았으며 매우 새로운 Windows 10 Technical Preview에서도 이 제한이 여전히 존재합니다.

이 기사에서는 Windows에서 경로가 260자보다 긴 파일로 작업하는 방법을 보여줍니다. 이 경우 우리의 임무는 경로 길이가 긴 파일이 포함된 디렉토리를 삭제하는 것입니다.

탐색기에서 이러한 디렉토리를 삭제하려고 하면 오류가 나타납니다.

대상 폴더에 대해 파일 이름이 너무 깁니다. 파일 이름을 단축하고 다시 시도하거나 단축 경로가 있는 위치를 시도할 수 있습니다.

Powershell은 또한 260자를 초과하는 큰 경로의 디렉토리와 파일을 올바르게 처리하는 방법을 모릅니다. 이러한 파일이 있는 디렉터리(C: \ Install \ MS SQL 2012 Express Edition 64 bit \ verylongpath)를 삭제하려고 하면 오류가 나타납니다.

Remove-Item.\Verylongpath -Recurse

Remove-Item: 지정된 경로, 파일 이름 또는 둘 다 너무 깁니다. 정규화된 파일 이름은 260자 미만이어야 합니다.
문자, 디렉터리 이름은 248자 미만이어야 합니다.
행에서: 1자: 1
+ Remove-Item.\Verylongpath -Recurse
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: WriteError: (C: \ Install \ MS S ... it \ verylongpath: String), PathTooLongExcepti
~에
+ FullQualifiedErrorId: RemoveItemIOError, Microsoft.PowerShell.Commands.RemoveItemCommand

가장 간단한 옵션(실제로 오류가 있는 창에서 제공됨)은 전체 경로 길이를 줄여 상위 폴더의 이름을 줄이는 것입니다(항상 적용되는 것은 아님).

Mklink / d c: \ 설치 \ 링크 "C: \ 설치 \ MS SQL 2012 Express Edition 64비트 \ verylongpath"

심볼릭 링크 작업을 연상시키는 또 다른 옵션은 문제 폴더를 가상 디스크(이 예에서는 X :)에 매핑하여 경로 길이를 줄이는 것입니다.

Subst X: "C: \ 설치 \ MS SQL 2012 Express Edition 64비트 \ verylongpath"

이제 제한을 초과하지 않는 파일 경로인 X: 드라이브의 데이터로 작업할 수 있습니다. 작업 완료 후 삭제할 수 있습니다. 가상 디스크:

Subst X: / d

그러나 개인적으로 이러한 상황에서 데이터를 삭제하는 작업에 대해 무엇보다 가능성이 마음에 듭니다. robocopy.exe긴 경로를 지원합니다.

옵션으로 / 미르, robocopy 유틸리티는 대상에서 소스 디렉토리의 전체 복사본(미러)을 만들 수 있습니다. 또한 원본 폴더가 비어 있으면 대상 폴더의 모든 데이터도 지워집니다. 빈 폴더 만들기 C: \ 설치 \ 테스트/ MIR 인수를 사용하여 테스트 폴더의 내용을 대상 폴더에 복사합니다(폴더 이름에 공백이나 키릴 문자가 포함된 경우 경로를 따옴표로 묶어야 함).

Robocopy / MIR C: \ 설치 \ 테스트 "C: \ 설치 \ MS SQL 2012 Express Edition 64비트 \ verylongpath"

명령을 실행한 후 C: \ Install \ MS SQL 2012 Express Edition 64 bit \ verylongpath 디렉토리의 내용이 지워집니다(빈 디렉토리의 내용으로 대체됨).

그래서 오늘은 경로 길이가 260자보다 큰 폴더가 포함된 파일 서버의 폴더로 작업할 때 사용할 수 있는 몇 가지 간단한 트릭을 보여 주었습니다.

다음은 "큰 중첩 인형"이라고 하는 폴더 구조의 예입니다.

보시다시피 "D"(데이터) 드라이브에는 원본 비디오 폴더가 있고, 그 안에 "Movies" 폴더가 있고, 그 안에 "Everything you need to watch movies", 그리고 같은 방식으로 폴더가 있습니다. 폴더에. 동시에 많은 폴더에는 10-15 자 이상의 긴 이름이 있습니다. 총 260 개가 넘는 모든 이름의 문자 볼륨을 제공합니다. 그리고 그러한 "matryoshka"의 끝에 파일을 사용하면 작업하지 못할 수도 있습니다. ... 때로는 시스템 자체에서 허용되는 문자 수를 초과하는 폴더나 파일을 생성할 수 없지만 어떤 이유로 인해 이런 일이 발생하는 경우도 있습니다. .

처음에는 초보자를 위해 파일 및 폴더의 경로가 무엇인지 설명하겠습니다. 경로는 파일 또는 폴더가 있는 컴퓨터의 주소입니다. 예를 들어, "My file.txt"라는 파일은 "Documents" 폴더의 로컬 드라이브 D:에 있습니다. 그러면 이 파일의 경로는 다음과 같습니다.

D: \ 문서 \ 내 파일.txt

또는 예를 들어 복잡한 폴더 구조를 보여줬던 위의 예에서 경로가 어떻게 생겼는지 알 수 있습니다.

보시다시피 위 경로의 문자 수가 많고 끝에는 삭제할 수 없는 긴 이름을 가진 파일이나 폴더가 있을 수 있습니다.

경로 이름이 긴 파일을 삭제하려고 하면 다음과 같은 오류가 있는 창이 나타납니다.

나는 인위적으로 문제를 재현하려고 시도했고 이것이 내가 얻은 것입니다.

디스크 "D"에 "1"이라는 짧은 이름의 폴더를 만들고 이름이 매우 긴 파일을 넣었습니다. 다음은 예입니다.

이제 폴더 "1"의 이름을 매우 긴 이름으로 바꿉니다. 예를 들면 다음과 같습니다.

흥미롭게도 Windows에서는 이 폴더 이름 + 파일 이름의 문자 수가 이미 260자를 초과했음에도 불구하고 폴더 이름을 그렇게 긴 이름으로 자유롭게 바꿀 수 있습니다! 글쎄, 긴 이름으로 폴더의 이름을 바꾼 후에는 더 이상 그 안에있는 파일을 삭제할 수없고 오류가 표시됩니다.

또는 여기 또 다른 예가 있습니다 ... 저는 이전에 풀 타임으로 일하고 때때로 사이트에 대한 새로운 "좋은"을 테스트하기 위해 컴퓨터에서 사이트 사본을 사용하는 Moscow Instrument-Making Technical School의 사이트를 유지 관리합니다. 그런 다음 나쁜 것을 설치했는데 호스팅 사이트가 죽으면 어떻게 됩니까? :) 그래서 내 컴퓨터에서 확인하고 모든 것이 정상이면 호스팅에 있는 실제 사이트에 이미 설정했습니다. 그래서 일단 테스트를 위해 호스팅에서 사이트 전체를 옮기고 작업을 마친 후에는 내 컴퓨터에서 사이트가 있는 폴더를 삭제하기로 결정했습니다. 결국 무게는 약 6GB입니다. 여러 폴더를 제외하고 전체 사이트가 삭제되었습니다. 나는 찾기 시작했고 상형 문자 형태의 긴 이름을 가진 파일이 포함된 폴더가 삭제되지 않았음을 확인했습니다.

긴 이름으로 이 파일을 삭제하려고 다시 시도했는데 위에서 언급한 것과 동일한 오류가 표시됩니다. 이름을 바꾸려고 했지만 작동하지 않습니다. 글쎄, 나는 문제를 해결하는 방법에 대해 생각해야했습니다.

경로명이 긴 폴더/파일 삭제 문제 해결 방법!

경로에 이름이 긴 폴더/파일을 삭제하는 방법을 2가지 방법으로 시도했습니다. 둘 다 기술적으로 어렵지 않기 때문에(특히 1차), 제가 보여드린 대로 모든 것을 하시면 초보자도 충분히 다룰 수 있을 거라 생각합니다.

    파일 경로에 있는 여러 폴더의 이름을 more로 바꿉니다. 짧은 이름... 이것은 이미 많은 사람들에게 도움이 될 가장 간단한 솔루션입니다! 삭제, 열기, 복사가 불가능하고 일반적으로 작업할 수 없는 매우 긴 이름의 파일이 폴더에 있다고 가정합니다.

    그런 다음 이름이 긴 파일이 포함된 폴더의 이름을 "1"로 변경해 보십시오. 위의 예 중 하나로 돌아가겠습니다. 다음은 이름이 긴 폴더입니다.

    표준 Windows 탐색기를 통해 해당 폴더의 이름을 "1"로 바꾸었습니다. 이제 파일 경로는 다음과 같습니다.

    이제 파일로 안전하게 작업할 수 있습니다. 시스템에서 파일을 열고 이름을 바꾸고 삭제합니다.

    긴 폴더 트리가 있는 경우 중첩 인형처럼 한 폴더에 다른 폴더가 있고, 그 안에 다시, 그리고 다시, 이 중첩 인형의 첫 번째 폴더에서 이름 바꾸기를 시작합니다. 목록의 마지막이 아니라 처음부터!

    폴더가 엄청나게 많은데 같은 오류로 인해 일부 폴더의 이름을 바꿀 수 없거나 시간이 많이 걸릴 수 있습니다. 이 경우 두 번째 방법을 제안합니다.

    방법은 예를 들어 공유 트리 중간에 폴더를 가져와 가상 디스크로 연결할 수 있다는 것입니다. 가상 디스크는 우리에게 일반 로컬 디스크, 그러나 예를 들어 빠르게 상호 작용하기 위해 특정 폴더에 단순히 바인딩합니다.

    다음과 같이 긴 경로가 있다고 가정해 보겠습니다.

    D: \ 비디오 \ 내 영화 \ 영화를 보는 데 필요한 모든 것 \ 영화를 보기 위한 프로그램 \ MP4 영화를 여는 방법 \ MP4 샘플 영화 목록 \ MP4를 여는 프로그램 목록 \ MP4 파일을 열 때 하지 말아야 할 것

    가장 마지막 폴더에 작업할 수 없는 문제가 있는 파일이 있다고 가정해 보겠습니다. 우리가 볼 수 있듯이 해당 파일의 경로가 꽤 길기 때문입니다. :)

    경로 중간에 있는 긴 이름의 폴더 중 하나를 가상 디스크로 가져와 연결할 수 있습니다. "영화 감상 프로그램"폴더로 설정하십시오.

    가상 디스크를 연결하려면 소위 Windows 명령줄이 필요합니다. 콘솔.

    통해 열 수 있습니다. 윈도우 검색... 검색에서 "명령줄"을 입력합니다.

    창에서 명령줄다음 명령을 입력해야 합니다.

    subst virtual_drive_letter "folder_path"

    더 이상 로컬 드라이브 중 하나가 차지하지 않도록 드라이브 문자를 입력할 수 있습니다. 예를 들어 로컬 드라이브 C와 D가 있습니다. 즉, 가상 드라이브를 같은 문자로 부를 수 없습니다. Windows에서는 거의 사용하지 않기 때문에 예를 들어 문자 "X"라고 부를 수 있습니다.

    폴더의 경로로 가상으로 연결하려는 폴더의 경로를 삽입합니다. 이미 말했듯이 내 예에서는 가상 폴더를 "영화 감상을 위한 프로그램"으로 만들 것입니다. 즉, 경로는 다음과 같이 지정되어야 합니다.

    D: \ 비디오 \ 내 영화 \ 영화를 보는 데 필요한 모든 것 \ 영화를 보기 위한 프로그램 \

    따라서 제 경우의 최종 명령은 다음과 같습니다.

    subst X: "D: \ 비디오 \ 내 영화 \ 영화를 보는 데 필요한 모든 것 \ 영화를 보기 위한 프로그램 \"

    입력한 명령을 실행하려면 키보드의 "Enter" 키를 누릅니다. 가상 디스크가 생성됩니다.

    이제 Windows 탐색기로 이동하여 "이 컴퓨터"(또는 "컴퓨터") 섹션으로 이동하여 생성된 가상 디스크를 확인합니다.

    문자로 구분할 수 있습니다. 가상 디스크에 문자 "X"를 할당했습니다. 이제이 가상 디스크를 열면 "영화 감상 프로그램"폴더에서 즉시 찾을 수 있습니다. 저것들. 우리는 최종 폴더에 대한 경로의 절반을 가져 와서 잘라냈습니다.

    비교하려고 ...

    이전에는 대상 폴더의 경로가 다음과 같았습니다.

    D: \ 비디오 \ 내 영화 \ 영화를 보는 데 필요한 모든 것 \ 영화를 보기 위한 프로그램 \ MP4 영화를 여는 방법 \ MP4 샘플 영화 목록 \ MP4를 여는 프로그램 목록 \ MP4 파일을 열 때 하지 말아야 할 것

    가상 디스크를 "영화 감상을 위한 프로그램" 폴더에 연결한 후 대상 폴더의 경로는 다음과 같습니다.

    X: \ MP4 영화를 여는 방법 \ 샘플 MP4 영화 목록 \ MP4를 여는 프로그램 목록 \ MP4 파일을 열 때 하지 말아야 할 일

    차이가 느껴지시나요? 드라이브 문자가 즉시 경로 중간에 있는 폴더로 안내하기 때문에 경로가 절반으로 단축되었습니다. :) 그리고 경로가 크게 단축되었으므로 이제 파일 및 폴더 이름의 문자 제한을 제거했을 것입니다. 이름이 긴 파일이나 폴더를 삭제할 수 있습니다!

    파일로 문제를 해결한 후 가상 디스크를 다시 삭제하여 탐색기에서 눈에 거슬리지 않도록 할 수 있습니다.

    이렇게 하려면 명령 프롬프트를 다시 엽니다. Windows 문자열다음 명령을 입력하십시오.

    Subst virtual_disk_letter / d

    제 경우 드라이브 문자는 "X"이므로 명령은 다음과 같습니다.

문제에 대한 해결책, 이름이 긴 폴더 또는 파일을 삭제하는 방법에 대해 생각하고 있을 때 인터넷에서 Total Commander 프로그램을 사용하여 문제 파일을 삭제하는 또 다른 옵션을 찾았습니다. 해봤는데 안되어서 이 방법은 추천하지 않았어요 :) 그리고 방법은 남에게 돈을 벌더라도 솔직히 내기해야 하기 때문에 쿨하지 않습니다 추가 프로그램이름이 긴 파일이나 폴더를 하나만 삭제하려면 컴퓨터에 ...

한 번 이상 겪었던 비슷한 문제가 발생하면 위의 방법 중 하나가 확실히 도움이 될 것이라고 생각합니다.

그게 다야! 다음 글에서 곧 만나요 ;)

긴 제목이 있지만 여기에서 설명할 문제의 본질을 나타냅니다. 나는 최근에 좋지 않은 상황에 직면했다. 하드디스크를 정렬하고 불필요한 것부터 정리하다 보니 파일 중 하나가 삭제되지 않고 다음과 같은 내용의 오류가 나타납니다. “파일 시스템이 그런 긴 이름을 지원하지 않습니다 소스 파일... 파일을 경로 길이가 더 짧은 폴더로 이동하거나 파일 이름을 더 짧게 지정하고 다시 시도하세요."

파일을 삭제할 수 없을 뿐만 아니라 이름을 더 짧은 이름으로 변경하는 데도 실패했습니다. 많은 사람들에게 이것은 파일이 삭제되지 않았기 때문에 막다른 골목처럼 보일 것입니다.

사실 문제는 아주 간단하고 빠르게 해결이 되었는데 이제 해결 방법 2가지를 설명 드리겠습니다.

소스에 대한 경로가 너무 긴 경우 이러한 파일을 삭제하는 방법은 무엇입니까?

긴 이름으로 인해 삭제되지 않는 파일이 있는 경우 여러 가지 방법으로 문제를 해결할 수 있습니다. 예를 들어, 파일이 각각 10-20자의 이름을 가진 5개 또는 10개의 폴더와 같은 여러 디렉토리에 중첩되어 있는 경우 이것이 파일을 삭제하지 않는 이유일 수 있습니다. 요점은 Windows는 이름에 260자를 초과하는 파일을 지원하지 않는다는 것입니다. 이 제한을 초과하면 위에서 보여준 오류가 나타납니다. 고유한 이름과 파일 이름 자체가 있는 폴더의 수는 최대 260자 미만이어야 합니다. 시스템에는 또한 한 가지 기능이 있습니다. 이 제한을 초과하더라도 폴더 이름을 변경할 수 있습니다. 즉, 모든 폴더의 이름을 문자나 숫자와 같은 짧은 이름으로 바꿔야 합니다.


이 문제는 그렇게 긴 이름을 지정했기 때문에 나타날 수 있습니다. 이것은 서버에서 사이트의 파일을 다운로드하고 무언가를 하기로 결정했을 때 나에게 일어났습니다. 파일이 더 이상 필요하지 않기 때문에 사이트 파일과 함께 전체 디렉토리를 삭제했지만 결과적으로 매우 긴 이름의 파일과 폴더 이름이 포함되어있어 모두 삭제할 수 없었습니다. 이것.

방법 2첫 번째가 실패한 경우 도움이 될 것입니다. 사실 이름이 긴 파일로 연결되는 모든 폴더의 이름을 바꿀 수 있는 것은 아니며 파일 시스템 오류가 계속 발생합니다. 그런 다음 삭제되지 않은 파일로 이어지는 하위 폴더를 사용하여 가상 디스크를 생성할 수 있습니다. 이제 이 작업을 수행하는 방법을 보여 드리겠습니다.

명령줄을 엽니다. 이렇게하려면 Win + R 조합을 누르고 명령을 입력하십시오. cmd... 누를 수 있습니다 마우스 오른쪽 버튼으로 클릭시작 메뉴(또는 키보드 단축키 Win + X)에서 마우스를 누르고 거기에서 명령줄을 선택합니다.

이제 다음과 같은 명령을 작성하면 가상 디스크가 만들어집니다.

다른 사람이 사용하지 않는 드라이브 문자를 선택해야 합니다. 시스템 파티션은 일반적으로 문자 C로 표시되고 두 번째 파티션은 D 또는 E로 표시되며 다른 파티션을 선택합니다.

폴더 경로는 디스크에서 지정해야 합니다. 어렵다면 가상 디스크 역할을 할 폴더를 열고 상단의 탐색기에서 해당 폴더의 경로를 복사하세요.

내 명령은 다음과 같습니다.

내 컴퓨터로 이동하면 명령줄에서 할당한 문자가 있는 드라이브가 표시됩니다. 따라서 파일 경로가 거의 절반으로 줄어들어 총 문자 길이가 260자 미만이 될 수 있습니다. 이제 제거할 수 없는 것을 제거하려고 할 수 있습니다.


가상 디스크를 삭제하려면 다음 명령을 입력해야 합니다.

subst DriveLetter / d

토탈 커맨더 사용하기

인터넷에서 제거할 수 없는 파일을 삭제하는 방법을 발견했습니다. 물론 여기서의 단점은 컴퓨터에 추가 소프트웨어를 설치해야 하며 모든 사람이 이 작업을 수행하기를 원하지 않는다는 것입니다. 어쨌든 갑자기 사용하고 싶어지는 이 방법은 여기에 남겨 둡니다.

프로그램을 다운로드하여 설치합니다. 탭으로 이동 "파일"섹션을 클릭하십시오 "속성 변경"... 모든 속성에서 갈까마귀를 제거하는 창이 나타납니다. 항목 반대편 상단에 체크 표시가 없는 경우 "디렉토리 내용 처리"- 우리가 고른다. 이제 동일한 프로그램에서 이름이 긴 파일을 삭제하려고 합니다.


우리는 아카이버 7-Zip을 사용합니다.

이 경우 7-Zip 아카이버가 필요합니다. 홈 디렉토리를 마우스 오른쪽 버튼으로 클릭하고 파티션을 마우스로 가리킵니다. "7-zip"항목을 선택하고 "아카이브에 추가".

하나의 확인란만 선택하면 되는 창이 나타납니다. "압축 후 파일 삭제"... 그런 다음 확인을 클릭합니다.

이 모든 내용의 아카이브가 바탕 화면에 생성되고 파일이 긴 폴더는 간단히 삭제됩니다. 아무 문제 없이 아카이브 자체를 삭제할 수 있습니다.

우리는 삭제되지 않은 파일의 오류를 수정하기 위해 이러한 방법을 고려했습니다. 이 작업을 수행하는 방법에 대해 더 많은 옵션이 있습니까?

이 공유