「檔案正在被另一個程式使用」、「存取被拒絕」、「找不到項目」——刪除失敗的背後藏著 6 種本質不同的成因。逐一擊破,不再盲目嘗試。
| # | 成因 | 典型錯誤訊息 | 核心機制 | 解決方案 |
|---|---|---|---|---|
| 1 | 檔案正在被使用 (鎖定) | 「無法刪除:檔案正在被另一個人或程式使用」 | 進程持有檔案控制代碼 (Handle),I/O 管理器拒絕刪除請求 | ① 關閉相關程式 ② 任務管理員/Resource Monitor 找鎖定進程 → 結束 ③ LockHunter/Unlocker/Process Explorer 一鍵解鎖 ④ 安全模式 / 關閉 Explorer 殼後 CMD 刪除 |
| 2 | 檔案系統損壞 / 壞軌 | 「檔案損壞無法讀取」、「資料錯誤 (CRC)」 | MFT/目錄項/資料區塊邏輯錯誤或物理壞扇區 | ① chkdsk X: /f /r (需重開機)② Victoria / MHDD 低層壞軌掃描/修復 ③ 物理壞軌 → 立即備份資料 → 更換硬碟 |
| 3 | NTFS 權限/所有權不足 | 「存取被拒絕」、「您需要權限才能執行此動作」 | DACL (自主存取控制清單) 拒絕目前使用者 DELETE/WRITE_DAC/WRITE_OWNER | ① 取得所有權:內容 → 安全性 → 進階 → 變更擁有者 → 目前使用者 → 勾選「取代子物件」 ② 授予「完全控制」 ③ CMD: takeown /f "路徑" /r /d y + icacls "路徑" /grant %username%:F /t |
| 4 | 保留名稱 / 非法檔名 (DOS 裝置名、尾隨空格/點) | 「找不到指定的檔案」、「語法錯誤」 | Win32 命名空間保留字 (CON, PRN, AUX, NUL, COM1~9, LPT1~9) 或尾隨空格/點導致 API 解析異常 | ① 使用 延伸長度路徑前綴:del "\\?\C:\Path\CON" del "\\?\C:\Path\File.txt " (尾隨空格)② Linux Live USB / WinPE 底層刪除 ③ 7-Zip/WinRAR 壓縮介面中刪除 (繞過 Win32 API) |
| 5 | 路徑過長超過 MAX_PATH (260 字元) | 「來源路徑太長」、「檔案名稱太長」 | 傳統 Win32 API 限制完整路徑 < 260 字元 (含結束符) | ① 啟用 Win10 1607+ 長路徑支援:群組原則/註冊表 LongPathsEnabled=1 + 應用程式清單 longPathAware② 使用 Robocopy /mir 鏡像到短路徑再刪除 ③ 從較淺層資料夾建立網路共享 → 透過 UNC 路徑存取刪除 ④ 7-Zip/Total Commander 等支援長路徑工具操作 |
| 6 | 系統/受保護檔案 (TrustedInstaller 擁有權、WRP 保護) | 「存取被拒絕 (需 TrustedInstaller 權限)」 | Windows Resource Protection (WRP) 保護核心系統檔,擁有者為 TrustedInstaller | ⚠️ **極不建議刪除**,可能導致系統不穩/無法開機 若必須 (如惡意程式偽裝):取得所有權 → 授予權限 → 刪除 → 立即執行 sfc /scannow 修復 |
takeown/icacls) → 刪除。\\?\ 前綴 CMD 刪除 / 7-Zip 介面刪除 / 啟用長路徑支援。chkdsk /f /r → 重開機 → 再試刪除。C:\Windows\System32、C:\Windows\WinSxS、C:\Program Files\WindowsApps 內容 (系統崩潰必然)。刪不掉別暴力,**先診斷成因類別,再選對應工具/指令**,一招制敵。