出現這類問題一般有以下幾種情況:
一:位於NTFS文件系統上,而起使用了ACL(Access Control List),沒有權限訪問你要刪除的文件;
二:文件正在被另外的程序使用者;
三:文件系統損壞導致無法訪問你要刪除的文件;
四:文件的路徑太長導致無法訪問;
五:文件名使用了非法的字符或Windows保留關鍵字。
針對每種情況的相應解決方法如下:
情況一、可以使用管理員帳戶通過重新設定ACL的方法獲得訪問權限
對於這種情況,可以用下列方法解決:使用管理員帳戶登錄,在無法訪問的文件上點擊鼠標右鍵選擇屬性,選擇“安全”標簽頁,選擇“高級”按鈕,再選擇“所有者”標簽頁,在“將所有者更改為”BOX裡面選擇管理員帳戶,反色,接著點擊“應用”按鈕使所有者變為你自己。最後點擊2次確定按鈕,關閉屬性對話框。再次打開屬性對話框,可以看到“安全”標簽頁下的“添加”按鈕已經編程可選狀態了,點擊這個按鈕,在“選擇用戶和組”對話框裡面輸入你要訪問這個文件的帳戶名(注意格式:計算機名\帳戶名)。
點擊確定按鈕返回上一層對話框,然後在“帳戶名的權限”BOX中選中完全控制復選,點擊確定即可重新獲得訪問權限。同樣,可以在命令行模式下使用cacls命令分配權限。
情況二、找到那個使用被刪除文件的程序並關閉
常見的故障發生在刪除一個AVI文件的時候。因為Windows有一個預讀機制,預讀會使文件處於被使用狀態,所以無法刪除。解決方法有很多:
a)關閉全部資源管理器,使用命令del或rd刪除文件或目錄(推薦);
b)刪除注冊表中下面這個鍵值:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{87D62D94-71B3-4b9a-9489-5FE6850DC73E}\InProcServer32。建議導出備份這個注冊鍵值,以便以後需要時復原;
c)進入DOS命令窗口,運行:REGSVR32 /U SHMEDIA.DLL注銷掉預讀功能;
d)使用“Windows傳統風格的文件夾”查看方式(文件夾選項--任務下面選擇)
e)使用能浏覽本地文件的第三方工具,如FlashFXP、CuteFTP等,進行刪除。
情況三、檢查文件系統,排除錯誤
當看到以下提示時就需要注意一下你的文件系統了:
:\ is not accessible
The file or directory is corrupt and non-readable.The file or directory iscorrupt and non-readable. The file or directory \ is corrupt andunreadable.
Please Run the Chkdsk utility.
排除方法:使用chkdsk命令檢查你的驅動器。修復受損的文件系統。起因有很多,例如:硬盤壞道、硬件設備的錯誤或軟件的bug都有可能引起這個問題。
情況四、路徑過長,超過了大多數Windows所能接受的255個字節(NTFS文件系統沒有這個問題)
使用8.3格式縮小長度或更改路徑中部分目錄名以減少路徑的長度。例如可以暫時的把路徑中某些目錄改改名字,或在命令行模式下使用8.3格式。例如:假設你要刪除的文件位於以下路徑:
C:\Documentations\HOWTO\2003\May\WindowsDocumentations\ForWebsites_Forum\Tips\Smallfrogs\Smallfrogs_Test_Project\YuanChuan_Articls\20030530\TheTroubleShootingAboutCannotDeleteFilesInWindows\
以上目錄已經能夠足以表達意思呢,不過路徑長度還是不夠255字節。
那麼可以輸入:
cd C:\Docume~1\howto\2003\may\window~1\forweb~1\tips\smallf~1\yuanch~1\20030530\thetro~1\
可以看到,使用8.3格式以後可以節省很多長度的。因為進入這種還有長路徑的目錄也是不成問題的。一旦進入了這類目錄,就可以使用del命名隨意的刪除你想刪除的文件了。
情況五、因為Windows認為這個命名是不合法的或這個命名與硬件設備有關。常見的保留字有LPT1、CON等。
對於含有保留字的文件,當我們發出刪除指令的時候,Windows會檢查被刪除的文件是否有合法的路徑,如果你的文件名含有Windows認為的非法字符或保留字,那麼刪除就會失敗。
我們有3種方法可以刪除這類文件:
a)采用Linux或其他非Windows的操作系統,以Linux/Unix為例:可以使用rm命令刪除:
rm -d //driveletter/path using forward slashes/filename
rm -r "//C/Program Files/BadFolder"
b)使用命令行工具的一個特殊參數解決:
RD\\.\:\\
DEL\\.\driveletter:\path\filename
在刪除命令後面跟上\\.\參數就可以避免Windows檢查文件名的合法性,因此可以刪除含有Windows保留字或非法名字的文件。
c)對於文件,如果可以使用通配符,那麼也可以采用通配符解決:
DEL DEL PR?.*
DEL LPT?.*