윈도우에서 폴더나 파일이 휴지통으로도 안 지워질 때, 대부분은 권한이나 바이러스가 아니라 이름·경로·잠금·손상 중 하나가 겹친 경우다. 탐색기는 편하지만, 이름 끝 점(.)·끝 공백·예약어·긴 경로 같은 Win32 API가 다루기 어려운 항목에서는 실패하기 쉽다. 반면 명령줄과 코딩 에이전트(Cursor Agent 등)는 확장 경로, robocopy 미러, 소유권 변경 같은 우회 기법을 조합해 같은 폴더를 비울 수 있다.
이 문서는 오류 메시지로 원인을 읽는 법, 원인별 해법, 실전 진단 순서, CLI·에이전트를 쓰는 이유와 안전 수칙을 한 흐름으로 정리한다. 외장하드(NTFS)에 WhatsApp 백업을 옮긴 뒤 G:\900_Phone처럼 상위 폴더만 남는 사례도 포함한다.
1. 삭제 실패는 증상 하나가 아니다
그림 1. 안 지워지는 폴더는 원인이 다섯 갈래로 나뉜다
탐색기에서 같은 「안 지워짐」이라도 뜨는 문구가 다르면 원인도 다르다. 무작정 재부팅·서드파티 삭제 툴부터 돌리기보다, 아래 표처럼 메시지 → 원인 → 1순위 해법을 먼저 맞춘다.
| 오류·증상 | 흔한 원인 | 1순위 해법 |
|---|---|---|
| 파일을 찾을 수 없음 (있는데 삭제 실패) | 이름 끝 점·공백, 예약어 | 확장 경로 또는 robocopy 미러 |
| 다른 프로그램에서 사용 중 | 프로세스 잠금 | 자원 모니터로 프로세스 종료 후 삭제 |
| 액세스가 거부됨 | 소유권·ACL | takeown + icacls 후 삭제 |
| 경로가 너무 깁니다 | MAX_PATH(약 260자) 초과 | 확장 경로, robocopy 미러 |
| 폴더는 비어 있는데 안 지워짐 | 숨은 이상 이름·손상 항목 | 확장 경로 dir, chkdsk |
겉으로는 「폴더 하나가 안 지워진다」처럼 보여도, 안쪽에 Win32가 접근 못 하는 파일 하나만 있어도 상위 전체가 막힌다.
2. 이름 문제 — 끝 점·공백·예약어
그림 2. NTFS에는 점이 붙은 이름이 있어도 Win32는 점을 잘라낸다
2.1. Win32와 NTFS의 차이
그림 3. 오류 문구만 읽어도 1순위 해법이 갈린다
NTFS 디스크에는 이름 끝에 점이 붙은 파일이 실제로 존재할 수 있다. 예: DOC-20210716-WA0001. 그런데 탐색기와 일반 삭제는 Win32 API를 쓰며, 이 API는 경로를 넘기기 전에 끝 점과 끝 공백을 잘라낸다(trim). 그래서 시스템은 점 없는 이름을 찾다가 실패하고, 사용자에게는 「파일을 찾을 수 없음」이 뜬다. 파일은 보이는데 지울 수 없는 유령 상태가 된다.
이런 이름은 안드로이드·리눅스·NAS에서 만들어진 뒤 NTFS 외장하드로 복사될 때 자주 생긴다. WhatsApp 미디어의 Documents\Sent 아래 문서 파일이 대표적이다. WhatsApp과 Whatsapp처럼 대소문자만 다른 폴더가 같이 보이는 경우도 있다.
2.2. 예약어·금지 문자
CON, PRN, AUX, NUL, COM1~9, LPT1~9는 장치 이름으로 예약되어 있다. 일반 경로로는 파일이 아니라 장치로 해석된다. < > : " / \ | ? * 가 들어간 이름도 다른 OS에서 넘어올 때 문제를 만든다.
3. 파일 잠금 — 사용 중
어떤 프로세스가 파일 핸들을 쥐고 있으면 삭제가 거부된다. 미디어 플레이어, 백그라운드 인덱서, 백신 실시간 검사, 썸네일 캐시 등이 흔하다.
| 방법 | 설명 |
|---|---|
| 자원 모니터 | Win+R → resmon → CPU 탭 → 연결된 핸들에서 파일명 검색 |
| handle.exe | Sysinternals — handle64 파일이름 으로 잠근 프로세스 확인 |
| 재부팅 직후 삭제 | 부팅 직후 잠금이 풀린 짧은 시간에 삭제 시도 |
이 유형은 이름 문제와 원인이 다르다. 잠금만 풀면 일반 삭제로도 된다.
4. 권한과 소유권 — Access Denied
현재 사용자에게 삭제 권한이 없거나, 소유자가 TrustedInstaller·이전 PC 계정일 때 발생한다. 다른 PC에서 만든 외장하드에서 자주 본다.
관리자 명령 프롬프트에서 소유권을 가져온 뒤 권한을 부여한다. takeown /f 경로 /r /d y 로 소유권, icacls 경로 /grant 사용자:F /t 로 삭제 권한을 준다. 그다음 del 또는 rmdir /s /q 로 삭제한다. /r, /t는 하위까지 재귀 적용이다.
5. 경로 길이 — MAX_PATH
전통적으로 Win32 경로는 약 260자(MAX_PATH) 제한이 있다. 폴더가 깊게 중첩되면 탐색기가 접근·삭제를 못 할 수 있다. Windows 10 1607 이상에서는 레지스트리 LongPathsEnabled=1 로 긴 경로 지원을 켤 수 있으나, 확장 경로와 robocopy 미러가 여전히 실무에서 많이 쓰인다.
6. 파일시스템 손상
NTFS의 MFT(파일 목록)에 고아·손상 항목이 있으면 어떤 방법으로도 정상 삭제가 안 될 수 있다. 외장하드를 안전 제거 없이 뽑거나 정전 시 발생한다. chkdsk G: /f /r 로 검사·복구를 시도하고, 그래도 남으면 데이터 백업 후 포맷이 최종 수단이다.
7. 실전 진단 순서
그림 8. NTFS 외장하드에 휴대폰 백업을 옮긴 뒤 생기는 사례가 많다
- 삭제 시 오류 문구를 그대로 적는다 — 사용 중 / 거부됨 / 찾을 수 없음 / 경로 김.
- 「찾을 수 없음」인데 탐색기에 보이면 이름 문제를 의심하고 확장 경로 또는 robocopy로 간다.
- 「사용 중」이면 resmon·handle로 프로세스를 찾아 종료한다.
- 「Access Denied」면 takeown + icacls를 시도한다.
- 원인이 섞이거나 애매하면 robocopy 미러를 1순위로 쓴다(이름·길이를 한 번에 처리).
- 그래도 실패하면 chkdsk로 손상 여부를 본다.
8. 해법 1 — 확장 경로 접두사
그림 5. \\?\ 접두사는 끝 점·긴 경로 삭제에 쓴다
경로 앞에 백슬래시 두 개 + 물음표 + 백슬래시 (\\?\) 를 붙이면 Win32의 이름 trim을 우회해 문자 그대로 커널에 전달한다. 끝 점 파일·긴 경로·일부 예약어에 쓴다.
| 작업 | 명령 예 (G: 드라이브) |
|---|---|
| 문제 파일 삭제 | del /f \\?\G:\경로\파일이름. |
| 폴더 통째 삭제 | rmdir /s /q \\?\G:\문제폴더 |
| 목록 확인 | dir /a \\?\G:\문제폴더 |
PowerShell에서는 Remove-Item -LiteralPath '\\?\G:\경로' -Recurse -Force 처럼 LiteralPath를 쓴다. 기본 -Path는 와일드카드로 해석해 특수 문자 파일이 실패할 수 있다.
9. 해법 2 — robocopy 빈 폴더 미러
그림 4. 빈 폴더로 /MIR 한 뒤 상위 폴더를 지운다
가장 확실한 만능법 중 하나다. 빈 폴더를 만들고, robocopy 빈폴더 문제폴더 /MIR 로 대상을 빈 폴더와 동일하게 만든다. 이상한 파일명을 직접 지정하지 않아도 내용이 비워진다.
| 단계 | 명령 |
|---|---|
| 1 | 빈 임시 폴더 생성 (예: G:\empty_tmp) |
| 2 | robocopy G:\emptytmp G:\900Phone /MIR /R:1 /W:1 |
| 3 | 문제 폴더·임시 폴더 순서대로 삭제 |
한 번에 안 비워지면 한 번 더 /MIR 한다. 실제 사례에서 Whatsapp 하위 JPG가 남아 두 번째 미러 후 G:\900_Phone이 제거됐다.
주의: /MIR는 대상 폴더를 소스와 완전히 같게 만든다. 대상 경로 한 글자만 틀려도 엉뚱한 폴더가 통째로 비워질 수 있다. 실행 전 경로를 눈으로 확인한다.
10. 해법 3 — 8.3 짧은 이름
dir /x 로 표시되는 DOC-20~1 같은 짧은 이름으로 삭제할 수 있다. 확장 경로가 안 통할 때 보조 수단이다.
11. 해법 4 — takeown과 icacls
권한 문제일 때 관리자 권한으로 소유권·ACL을 바꾼 뒤 삭제한다. 이름 문제와 동시에 있으면 확장 경로나 robocopy와 순서를 바꿔 시도한다.
12. 해법 5 — chkdsk
손상 의심 시 chkdsk G: /f /r (관리자, 해당 드라이브 문자로 변경). 복구 후에도 남는 항목은 백업·포맷을 검토한다.
13. 코딩 에이전트가 유리한 이유
그림 6. 에이전트는 진단부터 검증까지 한 흐름으로 처리한다
Cursor Agent·Claude Code 같은 터미널 코딩 에이전트는 아래 루프를 사람이 검색하며 헤매는 시간을 줄인다.
| 단계 | 에이전트가 하는 일 |
|---|---|
| 스캔 | Test-Path, Get-ChildItem -LiteralPath, dir \\?\ 로 실제 항목 확인 |
| 원인 특정 | 끝 점 파일 개수, 오류 문구, NTFS 여부 |
| 해법 선택 | robocopy /MIR, del \\?\, takeown 등 상황에 맞게 |
| 실행·검증 | 삭제 후 Test-Path, dir \\?\ 로 재확인 |
사용자는 「G:\900_Phone이 안 지워진다」처럼 말로 상황만 넘기면 된다. 바이브 코딩하듯 경로와 오류 문구를 그대로 주는 방식이 맞다. 에이전트가 드라이브 전체를 훑는 잘못된 명령을 돌리면 즉시 중단하고 범위를 좁히게 지시할 수 있다.
CLI가 GUI보다 강한 이유는 단순하다. 탐색기는 편의를 위해 이름을 정리하고, \\?\ 같은 저수준 접두사를 쓰지 못한다. 명령줄은 커널에 직접 우회 명령을 낼 수 있고, 배치·재현·스크립트화도 쉽다.
14. 에이전트·CLI 사용 시 안전 수칙
그림 7. /MIR 대상 경로 확인과 백업이 최우선이다
| 수칙 | 이유 |
|---|---|
| 삭제 전 백업·중요 파일 이동 | /MIR는 되돌리기 어렵다 |
| robocopy /MIR 대상 경로 재확인 | 잘못된 경로면 다른 폴더가 비워짐 |
| 넓은 dir /s /a 를 드라이브 루트에 쓰지 않기 | 전체 스캔·멈춤 유발 |
| 에이전트에 폴더 경로를 명시 | cleanup 같은 넓은 해석 방지 |
| 관리자 권한이 필요한 작업은 관리자 터미널 | takeown·chkdsk 실패 방지 |
Microsoft Learn 문서에도 끝 점·끝 공백 이름은 \\?\ 구문으로 다루라고 안내한다.
15. 상황별 최종 선택
| 상황 | 권장 순서 |
|---|---|
| WhatsApp·휴대폰 백업 직후, 「찾을 수 없음」 | robocopy 미러 → 확장 경로 |
| 파일이 「사용 중」 | resmon → 프로세스 종료 → 일반 삭제 |
| 외장하드, Access Denied | takeown + icacls → 삭제 |
| 경로가 매우 김 | \\?\ + robocopy |
| 명령어 외우기 싫음 | 코딩 에이전트에 경로·오류 전달 |
| 모든 방법 실패 | chkdsk → 백업·포맷 검토 |
16. 마무리
앞에서 다룬 윈도우 삭제 실패의 핵심만 짧게 정리한다.
- 증상 하나가 아니라 오류 문구로 원인(이름·잠금·권한·길이·손상)을 나눈다.
- 「파일을 찾을 수 없음」+ 폴더는 남음 → 끝 점·공백 파일명을 먼저 본다.
- robocopy /MIR와 확장 경로는 이름·길이 문제의 실무 1순위다.
- 잠금·권한은 각각 resmon, takeown/icacls로 따로 처리한다.
- 코딩 에이전트는 진단→실행→검증을 압축하지만, /MIR 대상 경로는 사람이 확인한다.
- chkdsk·포맷은 손상·최종 수단이며, 중요 데이터는 먼저 옮긴다.
「탐색기가 못 지우는 폴더는, 이름 규칙을 우회하는 명령으로 지운다」 — 외장하드 정리·백업 폴더 비우기 전에 이 순서를 기억하면 된다.
자주 묻는 질문
- 탐색기에서 폴더가 안 지워지고 '파일을 찾을 수 없음'이 뜨는 이유는?
이름 끝에 점(.)이나 공백이 붙은 파일이 안에 있을 때 Win32 API가 이름을 잘라내 '없는 파일'을 찾기 때문이다. WhatsApp 백업을 NTFS 외장하드로 옮긴 직후에 자주 본다. 확장 경로(\\?\)나 robocopy 빈 폴더 미러로 우회 삭제한다.
- robocopy /MIR 빈 폴더 덮어쓰기는 어떻게 하나?
빈 임시 폴더를 만든 뒤 robocopy 빈폴더 문제폴더 /MIR 로 대상 내용을 비운다. 비워지면 문제 폴더와 임시 폴더를 삭제한다. 한 번에 안 되면 /MIR를 한 번 더 실행한다. 대상 경로 오타 시 다른 폴더가 비워질 수 있어 실행 전 경로 확인이 필수다.
- 확장 경로 \\?\ 는 언제 쓰나?
파일명 끝 점·공백, 예약어 이름, 260자에 가까운 긴 경로를 지울 때 쓴다. del /f \\?\G:\전체경로\파일. 또는 rmdir /s /q \\?\G:\폴더 형태다. PowerShell은 Remove-Item -LiteralPath 로 동일하게 접근한다.
- '다른 프로그램에서 사용 중'일 때는?
파일을 잠근 프로세스가 있는 경우다. 자원 모니터(resmon) CPU 탭의 연결된 핸들에서 파일명을 검색해 프로세스를 종료한 뒤 삭제한다. Sysinternals handle.exe로도 확인할 수 있다. 재부팅 직후 삭제도 방법이다.
- Access Denied는 이름 문제와 다른가?
다르다. 소유권·ACL 문제일 때 나온다. 관리자 명령에서 takeown /f 경로 /r /d y 후 icacls 경로 /grant 사용자:F /t 로 권한을 준 다음 삭제한다. 다른 PC에서 만든 외장하드 파일에서 흔하다.
- Cursor 같은 코딩 에이전트에 맡기면 뭐가 편한가?
폴더 스캔, 끝 점 파일 탐지, robocopy·확장 경로 명령 선택, 삭제 후 검증까지 한 흐름으로 처리한다. 사용자는 경로와 오류 문구만 넘기면 된다. 다만 /MIR 대상 경로는 파괴적이므로 사람이 한 번 확인하는 것이 안전하다.
- WhatsApp 백업 폴더가 특히 잘 안 지워지는 이유는?
Documents\Sent 아래에 DOC-날짜-WA0001. 처럼 끝 점이 붙은 파일이 생기기 쉽고, WhatsApp과 Whatsapp 대소문자만 다른 폴더가 섞일 수 있기 때문이다. 안드로이드·리눅스 계열에서 NTFS로 복사할 때 이름 규칙 차이가 드러난다.
- chkdsk는 언제 돌리나?
확장 경로·robocopy·권한 수정 후에도 항목이 남거나, 안전 제거 없이 외장하드를 뽑은 뒤 이상할 때다. chkdsk G: /f /r 로 NTFS를 검사한다. 복구 후에도 삭제가 안 되면 백업 후 포맷을 검토한다.
테크·IT