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

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

이 제한은 라이브러리에 의해 부과됩니다. Win32 API, 최대 경로 길이는 260 자 ( MAX_PATH \u003d 260). 일반적으로 경로는 다음 요소로 구성됩니다. + [256_ 문자에서 _ 경로] + [ ] , NTFS에서 한 디렉터리 / 파일의 최대 길이는 유니 코드에서 255 자입니다. 유니 코드 API 함수를 사용하는 경우 경로를 사용하여 32767 문자. 덕분에 많은 타사 프로그램 (동일한 인기 파일 관리자, 예 : 멀리총 사령관) 경로 길이가 260자를 초과하는 파일 / 폴더를 어려움없이 처리합니다.

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

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

대상 경로가 너무 깁니다.... 대상 폴더의 파일 이름이 너무 깁니다. 파일 이름을 줄이고 다시 시도하거나 경로가 짧은 위치를 시도 할 수 있습니다.

다른 프로그램 / 대화 상자는 자체 방식으로 제한을보고 할 수 있습니다.

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

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

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

대상 폴더의 파일 이름이 너무 깁니다. 파일 이름을 줄이고 다시 시도하거나 경로가 짧은 위치를 시도 할 수 있습니다.

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

Remove-Item. \\ Verylongpath -Recurse

Remove-Item : 지정된 경로, 파일 이름 또는 둘 다 너무 깁니다. 완전한 파일 이름은 260 미만이어야합니다.
자, 디렉토리 이름은 248 자 미만이어야합니다.
줄 : 1 문자 : 1
+ Remove-Item. \\ Verylongpath -Recurse
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError : (C : \\ 설치 \\ MS S ... it \\ verylongpath : String), PathTooLongExcepti
의 위에
+ FullyQualifiedErrorId : 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 비트 \\ verylongpath 디렉토리의 내용이 지워집니다 (빈 디렉토리의 내용으로 대체 됨).

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

다음은 "big matryoshka"라고 부르는 폴더 구조의 예입니다.

보시다시피, "D"(데이터) 드라이브에는 원본 비디오 폴더가 있고 그 안에는 "영화"폴더, "영화를 보는 데 필요한 모든 것", 그리고 같은 방식으로 폴더의 폴더가 있습니다. 동시에 많은 폴더에는 이름의 긴 이름이 있습니다. 총 10-15 자 이상으로 총 260 개 이상의 모든 이름의 문자 볼륨을 제공합니다. 그리고 이러한 "중첩 인형"끝에 파일이 있으면 작업하지 않을 수 있습니다. 당신은 할 수 있습니다 ... 때로는 시스템 자체에서 허용되는 문자 수를 초과하는 폴더 또는 파일을 만들 수 없지만 때로는 어떤 이유로 이런 일이 발생합니다.

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

D : \\ 문서 \\ 내 file.txt

또는 예를 들어 복잡한 폴더 구조를 보여준 위 예제의 경로가 이렇게 생겼습니다.

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

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

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

디스크 "D"에 짧은 이름 "1"의 폴더를 만들고 그 안에 아주 긴 이름의 파일을 넣었습니다. 예를 들면 다음과 같습니다.

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

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

또는 여기에 또 다른 예가 있습니다. 저는 모스크바 악기 제작 기술 학교의 사이트를 유지하고 있습니다. 모스크바 악기 제작 기술 학교에서는 이전에 풀 타임으로 일했고 때로는 컴퓨터에서 사이트 사본을 사용하는 사이트에 대해 새로운 "굿즈"를 테스트했습니다. 그리고 갑자기 나쁜 것을 설치하고 호스팅 사이트가 죽습니까? :) 그래서 내 컴퓨터에서 확인하고 모든 것이 정상이면 호스팅에 위치한 실제 사이트에서 이미 구성합니다. 그래서 한 가지 테스트를 위해 호스팅에서 전체 사이트를 전송하고 작업을 마친 후 내 컴퓨터에서 사이트가있는 폴더를 삭제하기로 결정했습니다. 결국 무게는 약 6GB입니다. 여러 폴더를 제외하고 전체 사이트가 삭제되었습니다. 나는 상형 문자 형태의 긴 이름을 가진 파일을 포함하는 폴더가 삭제되지 않았 음을 확인하기 시작했습니다.

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

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

경로에 긴 이름을 가진 폴더 / 파일을 삭제하는 방법에는 두 가지 방법이 있습니다. 둘 다 기술적으로 어렵지 않기 때문에 (특히 1 번) 초보자도 내가 보여준대로 모든 것을한다면 다룰 수 있다고 생각합니다.

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

    그런 다음 긴 이름 (예 : "1")을 가진 파일이 포함 된 폴더의 이름을 바꾸십시오. 위의 예 중 하나로 돌아가겠습니다. 다음은 긴 이름을 가진 폴더입니다.

    표준 Windows 탐색기를 통해 해당 폴더의 이름을 "1"로 변경하면 파일 경로가 다음과 같이 표시됩니다.

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

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

    많은 수의 폴더가있을 수 있으며 동일한 오류로 인해 일부 폴더의 이름을 바꿀 수 없거나 많은 시간이 소요될 수 있습니다. 이 경우 두 번째 방법을 제안합니다.

    예를 들어, 공유 트리 중간에있는 폴더를 가상 디스크로 연결할 수 있습니다. 가상 디스크는 일반적인 로컬 디스크이지만, 예를 들어 빠르게 상호 작용하기 위해 특정 폴더에 간단히 바인딩됩니다.

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

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

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

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

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

    당신은 그것을 통해 열 수 있습니다 windows 검색... 검색에서 "명령 줄"을 입력합니다.

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

    subst virtual_drive_letter "folder_path"

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

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

    D : \\ 비디오 \\ 내 영화 \\ 영화 감상에 필요한 모든 것 \\ 영화 감상 프로그램 \\

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

    subst X : "D : \\ 비디오 \\ 내 영화 \\ 영화 감상에 필요한 모든 것 \\ 영화 감상 프로그램 \\"

    입력 된 명령을 실행하려면 키보드에서 "Enter"키를 누르십시오. 가상 디스크가 생성됩니다.

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

    문자로 구분할 수 있습니다. 가상 디스크에 문자 "X"를 할당했습니다. 이제이 가상 디스크를 열면 "영화를보기위한 프로그램"폴더에서 즉시 찾을 수 있습니다. 그. 최종 폴더 경로의 절반을 nafig로 잘라 냈습니다.

    비교하려고 ...

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

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

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

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

    차이를 느끼십니까? 드라이브 문자가 즉시 경로 중간에있는 폴더로 이동하기 때문에 경로가 절반으로 단축되었습니다. :) 경로가 크게 단축되었으므로 이제 파일 및 폴더 이름의 문자 제한을 제거하고 긴 이름의 파일 또는 폴더를 삭제할 수 있습니다!

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

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

    Subst virtual_disk_letter / d

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

문제에 대한 해결책, 이름이 긴 폴더 또는 파일을 삭제하는 방법을 생각할 때 인터넷에서 다른 옵션을 찾았습니다. Total Commander 프로그램을 사용하여 문제 파일을 삭제하는 것입니다. 시도해 봤지만 효과가 없었기 때문에이 방법을 추천하지 않았습니다. :)) 그리고 그 방법은 누군가로부터 효과가 있었더라도 솔직히 쿨하지 않습니다. 추가 프로그램 긴 이름의 파일 또는 폴더를 하나만 삭제하려면 컴퓨터에 ...

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

그게 다야! 다음 기사에서 곧 뵙겠습니다.)

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

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

사실, 문제는 매우 간단하고 빠르게 해결됩니다. 이제 두 가지 해결 방법을 설명하고 어떤 방법을 사용할지는 귀하에게 달려 있습니다.

소스 경로가 너무 길면 어떻게 그러한 파일을 삭제합니까?

이름이 길어 삭제되지 않은 파일이있는 경우 여러 가지 방법으로 문제를 해결할 수 있습니다. 예를 들어 파일이 10-20 자의 이름을 가진 5 개 또는 10 개의 폴더와 같은 여러 디렉토리에 중첩되어있는 경우 파일을 삭제하지 않는 이유가 될 수 있습니다. 사실 Windows는 이름에 260자가 넘는 파일을 지원하지 않습니다. 이 한계를 초과하면 위에서 보여준 오류가 나타납니다. 자체 이름과 파일 이름 자체를 가진 폴더의 수는 총 260 자 미만이어야합니다. 시스템에는 한 가지 기능도 있습니다.이 제한을 초과해도 폴더 이름을 변경할 수 있습니다. 즉, 모든 폴더의 이름을 짧은 이름 (예 : 문자 또는 숫자)으로 변경해야합니다.


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

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

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

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

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

폴더 경로는 디스크에서 지정해야합니다. 어려운 경우 가상 디스크 역할을 할 폴더를 열고 위의 탐색기에서 경로를 복사하십시오.

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

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


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

subst DriveLetter / d

Total Commander 사용

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

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


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

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

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

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

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

이 공유