sodown
區版主
射手座的豬
積分 23462
發文 2418
註冊 2005-9-1 來自 要學的很多,時間卻太少 ..
狀態 離線
|
#1 〔知識〕如何刪除砍不掉的檔案
一. 緣起:
二. 原因:刪除檔案的兩個條件:
(一). 檢查你是否有足夠的權限做 Delete
(二). 檢查檔案是否正被佔用中
三. 解決方案:
(一). 用 Filemon 檢查是誰佔用了檔案?
(二). 刪檔前的確認動作: 切勿刪除系統檔。
(三). 正確刪檔的流程:
方一:一般的程式佔用檔案時。
方二:檔案被 explorer 佔用時。
方三:無法關閉的程式。
方四:被 Windows 「系統服務」佔用時。
方五:被 NT、XP 或 DOS「磁碟啟動核心」佔用
方六:無法用任何程式刪除。(最嚴重的情況!)
四. 附錄
(一). 其它的刪檔法:
1. 刪除不掉的 .AVI 檔:
2. 另類刪檔的實驗方法和案例:
(1). 用 "網路芳鄰" 刪檔法
(2). WinCV 0.46
(3). CuteFTP Pro 3.3
(二). 教學
[教學]用 FileMon 來追蹤檔案的使用情況
[教學]用 Delete Doctor 刪除被係統佔用的檔案
[教學] 用 Windows XP/2000 安裝光碟中的 "修復主控台" 開機
- -----
一. 緣起:
xxxxxxxx > 想請問各位大大有沒有檔案砍不掉的,在 eMule 的 INCOMING 裡,一直出現有程式在使用這個檔案的警告,砍也砍不掉,請問那是怎麼一回事阿?....(以下略)
mstt > 你 eMule 如果關了,還有這種情況
mstt > 可用 Ctrl+Alt+Delete 叫出工作管理員(Taskmgr.exe)
mstt > 關掉explorer.exe
mstt > 然後應用程式→新工作→windows→explorer.exe→執行
mstt > 應該就可殺掉
(這是路人甲)
xxxxxxxx > 重開機到 DOS下 打 Del 檔案位置 (x:\xxx\xxx\xxx.xxx) 一定砍的掉。
(這是路人乙)
mstt > 是沒錯啦!不過像我硬碟格式都是NTFS在 DOS 下看不到
mstt > 用命令提示字元 有時可殺 有時不可殺
mstt >(檔案常駐在系統時)原因不明
(又是路人甲)
其實這都只對一半。待小弟娓娓道來。
. . . . .
二. 原因:刪除檔案的兩個條件:
第一:檢查你是否有足夠的權限做delete
第二:檢查檔案是否正被使用中
只要這兩個情況成立
那檔案是一定可以刪掉的
(一). 檢查你是否有足夠的權限做 Delete
如果有多個使用者或是企業版
則要注意一下權限的問題
尤其是當你重新安裝時候
第一次安裝時的 administrator 和第二次安裝時的 administrator
是不一樣的
舉個例子
第一次安裝在c槽,因為中毒,format c 槽
再一次安裝到c槽
則其他槽,d,e,f,g.....等
權限就容易出問題
例如D槽裡有第一次administrator的檔案
那你用第二次的administrator是怎麼砍都砍不掉的
你要先把權限改掉才能砍~~~
同樣的情況還有第一次安裝企業版
覺得難用,重灌專業版
也是會出現同樣的問題
還有,若被 administrator 本身所佔用的檔案,本身是無法刪除自我佔用的檔案的。(如 "C:\Documents and Settings\Administrator\NTUSER.DAT",得要再登錄到用另一個 administrator 權限的使用者才能刪除,這就是為什麼 Windows XP 一開始要輸入的第一位使用者的權限是 administrator 的原因。因為要刪除和管理彼此權限檔案
(二). 檢查檔案是否正被佔用中
通常安裝windows時都是用professional版本
而且只有一個使用者的話 (這時是 administrator 權限,幾乎什麼都可以處理)
那通常是第二種情況
檔案砍不掉時,通常代表有程式在使用它,故 Windows 系統不准你刪除它,以免和該程式產生存取衝突。
所以不見得重置 explorer 就可刪除,因為那要看是哪個程式在佔用檔案。
而 DOS 模式也不一定能成功。佔用檔案的程式未刪除,在 Windows 的模擬 DOS 下照樣不能刪除。(仍受 Windows 系統控制)
所以第一個迷思是:explorer 關掉再重開能刪除成功,是因為是 explorer 佔用了該檔的存取權,所以關掉 explorer 後,就沒有程式佔住檔案不放。再重開時,新 explorer 也沒有佔住檔案,所以能刪除成功。
若是其他的程式佔用了檔案存取權,這時重置 explorer 就沒意義了。
第二個迷思是:重開機到 DOS 下打 del 檔案位置(x:\xxx\xxx\xxx.xxx) 一定砍的掉。
也是因為 "重開機" 後,佔用檔案的程式被關閉了,再重開機時沒有程式佔用檔案,這時用任何方法都可成功刪除,不一定要用模擬 DOS,因為佔用檔案的程式被關閉了嘛!
DOS 模式還分三種,一種是進入 Windows 後的 "模擬 DOS" ,一種是 "安全模式 (含命令提示字元)" 安全模式 (一開機按 F8 進入,只載入必要的服務)。第三種就是只有提示符號的 "修復主控台" 模式(純命令列模式)
只有遇到一進入 Windows 環境就鎖定檔案的程式,而你根本來不及也無法刪除,才考慮用 "純命令列模式" 刪除。(趕在 Windows 作業啟動前就刪除了)
所以才會產生用命令提示字元 有時可殺 有時不可殺,因為檔案被程式佔用,而該程式你又沒關掉,所以 Windows 系統仍阻止 "模擬 DOS" 刪除檔案。(存取衝突)
也才會產生 explorer 重置後,還是不能刪除檔案的情況。(因為是別的程式佔住了,應該關閉的是 "別的程式" ,不是 explorer)
三. 解決方案:
瞭解原因後,來講解決方案
(一). 用 Filemon 檢查是誰佔用了檔案?
那要如何才能知道是什麼程式佔用了檔案呢?
小弟提供一個小小的免費程式 "Filemon",它可以讓你知道哪些程式在存取哪些檔案。就不用瞎子摸象了。
下載請至 http://www.sysinternals.com
詳細資訊請看以下附錄教學:[教學]用 FileMon 來追蹤檔案的使用情況
(二). 刪檔前的確認動作: 切勿刪除系統檔。
在刪檔之前,請先確認該檔的用途,若不小心刪除了重要的檔案,輕者程式錯亂,重者 Windows 不能開機,故請三思而後 "刪" 。
(三). 正確刪檔的流程:
方一:一般的程式佔用檔案時。
1. 找出佔用檔案存取權的程式。(如 eMule 佔用了你想刪除的檔)
2. 關閉該程式。(結束 eMule 處理程式,若 eMule 當機時,可能要終結 eMule 程式,甚至重開機)
3. 當沒有其他程式佔用該檔案時,你就可以用任何方式刪除該檔。
方二:檔案被 explorer 佔用時。
平常大家都是用 explorer 刪除檔案,但若佔用檔案的就是 explorer 本身時,你把 explorer 關了,就不能用 explorer 刪除檔案了。所以才會有上面大大所說的 explorer 及 DOS 法。
正確程序如下:
1. 關閉 explorer。
2. 叫出 Windows 工作管理員(按 Ctrl+Alt+Del 三個鍵),選檔案/新工作(執行...),然後選 "瀏覽(B)" ,選出你要刪的檔案,看是直接按del刪除還是按右鍵選刪除皆可。
3. 重開 explorer。
方三:無法關閉的程式。
1. 可試試 "重開機" ,通常重開機後,程式就被強制關閉了,通常都能見效。
2. 而遇到一開機就會啟動的程式,可先取消該程式在啟動區的登錄,再重開機。(如 開始程式表/啟動,及 REGEDIT 中的 Run 登錄機碼)
2. 重新進入後,刪除檔案。
方四:被 Windows 「系統服務」佔用時。
重開機仍不能解決該檔案被程式佔用。(即一進 Windows 畫面就刪不掉了,該程式又關不掉。)
1. 一開機按 F8,進入安全模式後刪除檔案
2. 或選擇進入 "安全模式 (含命令提示字元)" 可避過 Explorer 的問題,但得用 C:> del 指令手動刪除。
2. 可找有解決這方面的軟體。如 "DELETE DOCTOR" 能刪除被「系統服務」佔用的檔案
詳細資訊請看以下附錄教學: [教學]用 Delete Doctor 刪除被係統佔用的檔案。
方五:被 NT、XP 或 DOS「磁碟啟動核心」佔用
進入 "安全模式 (含命令提示字元)" 模式也刪不掉的檔案。
1. 用另一張磁片或光碟開機。有以下幾種方式:
(1). 若要處理的是 FAT 格式,可用 Windows 95/98/ME 開機片。
(2). NTFS 檔案系統可用 Windows XP/2000 安裝光碟開機,選擇 "修復主控台"
詳細資訊請看以下附錄教學:[教學] 用 Windows XP/2000 安裝光碟中的 "修復主控台" 開機
(3). NTFS 檔案系統也可用特殊作業系統開機 (有一些廠商有設計可讀取 NTFS 的特殊作業系統)
(4). 找另一台 Windows 開機硬碟充當開機片,將想刪檔的硬碟裝在這台開機硬碟的後面,透過這台開機硬碟來刪檔。對用 NTFS 檔案系統的人比較方便。
2. 再進入硬碟機中刪除。
方六:無法用任何程式刪除。(最嚴重的情況!)
這屬於磁碟修復的範圍了,在這裡小弟不討論!(如 FAT 檔案系統的頑固目錄即屬此類,在此不討論)
若遇到最後的狀況,那您就真的得搬救兵了!
四. 附錄
(一). 其它的刪檔法:
1. 刪除不掉的 .AVI 檔:
shmedia.dll 它的功能是 Windows XP 媒體預覽功能,它會在你還沒處理avi檔案前,碓定這個檔案內容,大小,但一旦你的檔案有問題,它會掛在那裡不停的確認,造成 CPU 100% 負載,刪也刪不掉。
(1) 在「開始→執行」中輸入「regsvr32 /u shmedia.dll」,出現「DllUnregisterServer 在 shmedia.dll 成功」的對話方塊就表示成功關閉 Windows XP 媒體預覽功能。
重開機後就可刪除 .avi 檔。
如果想恢復它時,輸入「regsvr32 shmedia.dll」即可。
(2) 清空 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{87D62D94-71B3-4b9a-9489-5FE6850DC73E}\InProcServer32
這和 regsvr32 /u shmedia.dll 是同樣的動作,建議用 regsvr32 /u shmedia.dll 是比較安全且方便的做法。
2. 另類刪檔的實驗方法和案例:
實驗方法和準則:
先啟動 eMule 隨便抓一個檔案,暫存檔假設為 001.part,然後在 eMule 執行中(這時 001.part 是被 eMule 佔用的),使用上述方式直接刪除。
重點就是,是否能突破作業系統鎖定檔案的權限,而能直接刪除。若得關閉 eMule 才能刪除,那就和 "將佔用檔案的程式關閉再刪除" 的原理一樣了,關閉佔用的程式後,用任何方式都可以刪除,並沒有特別之處。
(1). 用 "網路芳鄰" 刪檔法
..以下為原文..
還有一個方法,不過需要建立在有網芳的環境下
把那個資料夾開完整存取,然後用網芳把檔案給刪除
如果不行的話請多試幾次,大部分都會成功(如果剛好找對刪除的時機)
原因如下:
網芳刪檔案是屬於直接刪除,不經過資源回收筒
所以當程式沒有在佔用的某個時間內把檔案刪掉,就真的刪除了
而且網芳的權限好像比檔案總管還高....所以能成功
(2). WinCV 0.46 :實驗結果,無法刪除。
(3). CuteFTP Pro 3.3 :實驗結果,無法刪除。
|
心情 點 播機
|
|