無法刪除檔案的解決辦法

  在我們使用windows的過程中,會遇到各種各樣的問題。即使是最簡單的刪除檔案也可能遇到麻煩,要麼系統提示“檔案正在被另一個人或程式使用”,要麼就是報告“訪問被拒絕”,接下來由小編為大家推薦電腦技巧,希望對你有所幫助!
 

  原因一:檔案正在使用中

  在刪除檔案時,經常會遇到的一個問題是,檔案正在使用,無法刪除。如果試圖刪除以獨佔訪問而不是以共享訪問方式開啟,並且正在使用中的檔案時,系統就會出現錯誤提示:“無法刪除xxx:檔案正在被另一個人或程式使用”。而另一種情況則是,能夠使用刪除命令刪除檔案,但在開啟檔案的程序釋放該檔案之前,檔案實際上並未刪除。

  要解決上述問題,需要確定擁有檔案開啟控制代碼的程序,然後關閉此程序。在以前的windows中,我們可以使用資源工具包的oh.exe。但在xp中,安裝好的support tools卻不帶oh.exe。不過,xp提供了一個新的openfiles.exe命令列工具,它能夠報告程序開啟的各個檔案。與oh.exe相似,openfiles.exe也要求開啟系統核心監視,這會消耗一些記憶體,並降低系統操作的效能。開啟系統監視的命令是“openfiles /local

  on”,它會啟用系統全域性標誌“維護物件列表”,需重新啟動系統才能生效。重新啟動系統後,在命令提示符下執行不帶引數的“openfiles”,即可看到各個程序開啟檔案的清單。

  原因二:檔案系統損壞

  磁碟上的壞區、其他硬體故障或者軟體錯誤都可能會損壞檔案系統,使檔案出現問題而無法刪除。典型操作失敗的方式可能各不相同,當檢測到檔案系統損壞時,通常會收到一條提示執行chkdsk的資訊。

  如果遇到這種情況,可以在磁碟捲上執行chkdsk實用工具以糾正任何存在的錯誤。根據損壞的性質,chkdsk也許能夠恢復檔案資料,也許無法恢復,但chkdsk可以使檔案系統返回到一種在內部一致的狀態。有關chkdsk實用工具的命令及引數,可以在命令提示符下執行“chkdsk/?”查閱。

  原因三:檔案使用了存取控制列表

  如果某個檔案使用了存取控制列表***access control list,簡稱acl***,而操作者又沒有相應的許可權,那麼刪除檔案時就可能出現“訪問被拒絕”的提示。

  通常情況下,管理員具有取得任何檔案所有權的隱含能力,檔案所有者也具有修改檔案許可權的隱含能力。不過,這些預設的許可權是可以被修改的。

  要解決因acl導致檔案無法刪除的問題,就必須以具有相應許可權的使用者身份登入,或者是賦予自己刪除檔案的許可權,然後才能刪除檔案。要注意的是,操作者必須擁有這些檔案的所有權才能更改許可權。如果是因為檔案使用了不規範的acl而不能使用某些安全工具顯示或修改其許可權時,可以嘗試使用命令列工具cacls.exe進行修改。

  原因四:檔名使用了一個保留名稱

  眾所周知,像aux、lpt1這樣的名稱是為舊式dos裝置保留的。為了向後相容,在windows中不允許使用這些檔名,也不能使用典型的win32檔案呼叫來建立它們。反之,如果檔名是win32名稱空間中的一個保留名稱,則同樣可能無法刪除此檔案。

  要解決此類問題,可以在linux或其他非windows的作業系統下重新命名或刪除該檔案。另外,如果能夠使用特定的語法指定到該檔案的路徑,也可以使用一些內建的命令繞過典型的win32保留名稱檢查。例如,在windows xp中使用以下命令,可以刪除名為“lpt1”的檔案***del命令後面加上“?”來避免windows檢查檔名的合法性***: del c:檔案路徑lpt1

  原因五:無效的檔名稱

  如果檔名中包括一個無效名稱,例如檔名有一個尾隨空格,或一個尾隨句點,或者檔名僅由一個空格組成,同樣可能無法刪除該檔案。值得一提的是,如果使用典型的win32語法開啟名稱中有尾隨空格或尾隨句點的檔案,則尾隨空格或句點在開啟實際檔案之前會被去掉。因此,如果在同一個資料夾中有兩個分別名為“file.txt”和“file.txt ”的檔案***注意第二個檔名後面的空格***,當使用標準win32呼叫開啟第二個檔案時,實際上會開啟第一個檔案。同樣,如果檔案的名稱僅是“ ”***一個空格字元***,當嘗試使用標準win32呼叫開啟它時,實際上會開啟該檔案的父資料夾。在此情況下,如果嘗試更改這些檔案上的安全設定,就有可能會意外更改其他檔案上的設定。

  與解決檔名使用保留名稱的方法類似,可以使用一種適當的內部語法刪除此檔案。例如要刪除包含尾隨空格的檔案,可以使用如下命令: del c:檔案路徑***尾隨空格的檔名***

  原因六:檔案路徑太深無法訪問

  檔案位於比最大路徑字元數***max_path***更深的路徑中,可能導致檔案無法訪問,當然,這種情況較為少見。如果路徑深的原因是資料夾名稱太長,最簡便的解決方案是使用自動生成的8.3名稱訪問該檔案。如果8.3路徑也太長,可以從根資料夾開始重新命名資料夾,縮短它們的名稱,以使目標檔案的路徑深度不超過max_path。若是檔案的深度超過128個資料夾,可以通過建立一個網路共享,使其位於資料夾樹中儘可能深的位置,然後通過訪問此共享來訪問檔案。

  一般情況下,如果遇到因檔案路徑太深無法訪問的情況,可以通過使用建立檔案的軟體來管理這些檔案。也就是說,如果有一個程式,它可以建立超過max_path的檔案,則我們也可以使用該程式來管理這些檔案。此外,對於通過網路共享建立的深層次結構的檔案也可以通過使用同一共享來進行刪除。

  前面介紹了windows系統中檔案或資料夾無法刪除的幾種原因以及解決的方法。在某些情況下,可能還會遇到上述各種原因的不同組合,使得刪除檔案的過程更加複雜。這就需要讀者能夠舉一反三,靈活應用微軟提供的各種實用工具進行解決了。