이름이 큰 파일을 강제로 삭제


62

필자는 정기적으로 Node.js를 사용하여 내가 작성한 프로그램의 종속성을 관리합니다. 오늘 나는 다음과 같은 폴더 구조로 끝났습니다.여기에 이미지 설명을 입력하십시오

파일을 삭제하려는 중에이 오류가 발생했습니다.

소스 파일 이름이 파일 시스템이 지원하는 것보다 큽니다. 경로 이름이 짧은 위치로 이동하거나이 작업을 시도하기 전에 짧은 이름으로 이름을 바꾸십시오.

이미 C : \에 있었으므로 훨씬 짧아지지 않았습니다.



당신은 당신의 폴더 구조가 어떻게 큰지 알 수 있습니까 grunt를 설치할 때 같은 상황을 겪었습니다.
eran otzer

1
npm을 사용하여 @eranotzer
Seiyria

나는 package.json의 종속성을 잘못 쓴 곳을 찾지 않았다?
eran otzer

@eranotzer 예. npm @ 2의 작동 방식으로 인해 모든 종속성은 그 안에 종속성을 중첩시킵니다. 이는 종속성 체인이 임의로 길 수 있음을 의미했습니다. npm @ 3은이 동작을 조정하려고합니다.
Seiyria

답변:


75

Microsoft 도구를 사용하십시오 robocopy.exe.

  1. 예를 들어 빈 폴더를 새로 만듭니다. c:\empty
  2. 그런 다음 빈 폴더를 삭제하려는 긴 파일 이름이 포함 된 폴더에 복사하십시오 (예 :) c:\myannoyingfolder. 명령 프롬프트에서 다음과 같이하십시오 :

    robocopy / MIR c : \ empty c : \ myannoyingfolder


이 작업은 종종 워크 플로의 일부이므로 Windows 셸과 통합하는 방법을 알아 냈습니다. 아래 답변을 참조하십시오. :)
toddmo

참고 :이 명령은 완료하는 데 몇 초 또는 몇 분이 걸릴 수 있습니다. 그래서 걱정하지 말고 마술처럼하세요 :-)
Adil Malik

고마워, 나를 위해 일했다. 나는 여전히 파일 중 하나를 유지하고있는 모든 프로세스 (IIS)를 죽였는 지 확인해야했습니다.
Slick Shinobi

robocopy.exe를 열려고 할 때마다 창이 잠시 깜박 인 다음 아무 일도 일어나지 않습니다. 도와주세요
Maulik Modi

29

D:\very\long\path, 당신이 나무를 삭제하고 싶다고 가정 해 봅시다 . Robocopy와 같은 도구를 반드시 사용할 필요는 없습니다.

  1. 삭제할 수없는 디렉토리가있는 드라이브의 루트 디렉토리로 이동하십시오.
  2. 단일 문자 이름으로 디렉토리를 만듭니다. 예 : D:\a
  3. 이 경우 삭제하려는 디렉토리 내부로 이동하십시오. D:\very\long\path
  4. 모두 선택 ( Ctrl+ A) 및 잘라 내기 ( Ctrl- X)
  5. 방금 만든 폴더로 이동
  6. 붙여 넣기 ( Ctrl- V)
  7. 이제 루트 디렉토리로 이동하여 temp 폴더를 삭제하십시오. D:\a
  8. 그런 다음 돌아가서 원래 디렉토리를 삭제하십시오.

2
이것은 나를 위해 첫 번째 시도에서 나에게 효과가 없었습니다. 그러나이 절차를 반복 한 후 폴더 수준이 더 높아지면 모든 것을 삭제할 수있었습니다.
abaldwin99

1
훌륭한 솔루션, 완벽하게 작동했습니다. 간단하고 효과적입니다. 감사합니다!
Caner Öncü

큰!! 매력처럼 작동합니다 !!! 다른 도구가 필요하지 않습니다. 감사!
Prasanth KC

이것은 훌륭하게 작동하며 경로에서 파일을 선택해도 작동하지 않으면 긴 경로 중간에 폴더를 선택하고 해당 폴더를 대신 임시 폴더로 이동 한 다음 삭제할 수 있습니다 둘 다 비슷한 방식으로.
Narayana Nagireddi

4

나는 ( del /F그리고 rmdir /S휴지통을 우회하기 위해 삭제하는 동안 shift를 누르고 있음)을 포함하여 많은 명령을 시도하는 동안이 문제를 입력하기 시작했습니다 . rmdir /S실제로 모든 파일을 삭제 했으므로 리프 노드 인 폴더를 삭제 한 다음 한 번에 몇 개의 노드로 트리를 진행할 수 있다고 생각합니다 . 결국 나는 그것들을 모두 청소했지만 그것은 어리 석었습니다.


4

이 기능을 Windows 셸에 통합 할 수 있습니다. Flo의 답변을 향상 시키기에는 너무 길었습니다.

DeleteWindows 컨텍스트 메뉴에 명령을 추가했습니다 .

여기에 이미지 설명을 입력하십시오

delete.reg파일과 폴더를 연결하는 레지스트리 항목을 추가 robodelete.bat배치 파일.

delete.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\Delete]

[HKEY_CLASSES_ROOT\Directory\shell\Delete\command]
"Extended"=""
@="\"D:\\Documents\\robodelete.bat\" \"%1\""

robodelete.bat

mkdir c:\empty
robocopy /MIR c:\empty %1
rmdir %1
rmdir c:\empty

참고 : 기본 설정에 따라 두 파일의 경로를 변경해야 할 수도 있습니다.

경고 :이 명령을 취소 할 수있는 방법이 없습니다. 휴지통을 사용하지 않으며 폴더를 폐기하기 전에 Y / N에 확인을 요청하지 않습니다!


경고 해 주셔서 감사합니다. 워크 플로에서도이 기능이 필요하지만 오른쪽 클릭 메뉴에 Y / N 확인이없는 핵 버튼이없는 것을 피하고 싶습니다. 시간이 걸리면 조정 작업을하고 편집을 제안합니다.
abaldwin99

1
@ abaldwin99, 이런 식으로 아마 stackoverflow.com/a/1807318/1045881
toddmo

4

SuperDelete 오픈 소스 명령 줄 도구 ( GitHub )는 다른 옵션이 실패한 후 (Windows 10) 저에게 효과적이었습니다 .


3

가장 좋은 방법은 robocopy를 사용하는 것입니다. 개인 블로그에 다음과 같이 기록했습니다.

http://clintboessen.blogspot.com.au/2014/05/how-to-delete-files-which-exceed-255.html


4
이 링크가 질문에 대답 할 수 있지만 여기에 답변의 필수 부분을 포함시키고 참조 할 수있는 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되거나 사라지면 링크 전용 답변이 유효하지 않을 수 있습니다.
Andrea

0

대부분의 경우 명령 프롬프트에서 디렉토리로 CD를 CD로 복사하고 DEL을 사용하면 작동합니다.

그렇지 않은 경우 전체 경로가 충분히 짧을 때까지 가장 낮은 수준의 폴더 이름을 짧은 이름 (예 : "a")으로 바꾸고 다음으로 높은 폴더 이름 등으로 이름을 바꾸어야합니다. 아래에서 위로 작업하면 항상 최종 파일보다 전체 경로가 짧은 이름을 조작 할 수 있습니다.


0
  • 관리 명령 프롬프트 열기
  • net use z: c:\path
  • del z:\*.*

그에 따라 조정하십시오. Z :는 문제를 일으키는 경로를 매핑하는 임의의 드라이브 문자입니다. 마지막 삭제 명령은 매핑 한 WHOLE 디렉토리를 삭제하므로 필요에 따라 더 구체적으로 지정하십시오.


2
파워가없는 사용자에게는 매우 위험합니다! 잘못하면 드라이브를 닦을 가능성이 있습니다.
Rudi Strydom

100 % 동의했습니다. 이것에 대해 신중하게 진행하십시오.
Bradley Forney

0

좋은 방법은 pendrive에 부팅 가능한 Linux를 설치 하고 라이브 CD OS 에서 문제없이 파일을 삭제하는 것 입니다.


-1

나는 또한 같은 문제가 있었고, 스스로 그것을 발견했다. 간단히 부모 폴더의 이름을 가능한 한 적게 바꾸십시오. 전의. "우리의 폴더 경우 D는 "같은 드라이브 D : // 폴더 / Undelete_Folder을 . 유일하게해야 할 일은 부모 폴더 이름을 작게 바꾸는 것 입니다. 이름을 " a "로 바꿀 수 있습니다 . 그러면 귀하의 위치는 D : // a / Undelete_folde r입니다. 그런 다음 부모 폴더를 삭제하십시오.


이것이 반드시 작동하지는 않을뿐만 아니라 (축소해도 여전히 더 큰 경우) 어떻게 내 폴더가 드라이브의 루트에 있다고 명시 적으로 언급했습니다.
Seiyria

-2

다른 모든 것이 실패하면

문자열의 마지막 디렉토리로 이동하십시오. 파일 잘라 내기 붙여 넣기를 문자열의 4 번째 또는 5 번째 파일로 다시 보냅니다. 그런 다음 [Shift] + [Delete]는 트릭을 수행해야합니다.

DPM 백업에서 테스트 복원 파일을 삭제할 때 관리자 권한 명령 프롬프트에서 위의 내용을 실행하는 것에 회의적이었습니다.

이것이 도움이되기를 바랍니다.


그들이 있기 때문에이 가능성이 작동하지 않습니다 아직 절단 작업을위한 그 긴 파일 경로를 가지고있다.
Seiyria
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.