題 如何刪除路徑太長而無法刪除的文件[重複]


這個問題在這裡已有答案:

我正在使用我發現的一些計算機視覺源代碼,並沒有意識到它創建了一個具有非常長的名稱的緩存文件,現在我無法刪除其中的2個。

我試圖將它重命名為一個較短的名稱,但我無法對該文件做任何事情,我也試圖重新啟動計算機,看看它是否會消失。

錯誤消息說:

目的地路徑太長。

文件名太長了   目標文件夾。您可以縮短文件名,然後重試,或嘗試一下   路徑較短的位置。

screenshot

在這種情況下如何刪除文件?


193
2018-05-16 20:09


起源


它是否可以在命令行中使用 del 命令?有點像 del *.cache 應該刪除當前目錄中的所有.cache文件。 - Ryan
“路徑\到\文件夾\ CACHEI~系統找不到指定的文件”說兩次,那裡有2個文件,但沒有做任何事情 - Chris
再想一想,您可以查看已經回答的其他問題之一。 這個 例如。 - Ryan
如果這兩個文件是目錄中唯一剩下的文件,那麼刪除整個目錄可能會更好。從命令提示符處,嘗試 rd /s directoryname  這將消失 directoryname 以及其中的所有文件/子目錄,因此請謹慎使用:) - bitsmack
youtube.com/watch?v=qQTyTprFAOg - bhv


答案:


假設你在Windows上:

我一直在做的就是使用 SUBST 與路徑的一部分創建驅動器號關聯。

然後轉到新的驅動器號並導航到具有長名稱的文件。您現在應該能夠重命名/刪除/等等。這樣做的原因是因為路徑本身不再包含> 255個字符。

創建一個subst文件夾

  1. 啟動命令提示符(不需要管理員權限)
  2. 使用 cd 導航到你想去的文件夾(你可以使用 標籤 自動完成名稱
  3. 類型 subst j: . 創建驅動器協會。 (而不是。你也可以輸入整個路徑)
  4. 現在在資源管理器中,您有一個新的驅動器號 這台電腦。轉到它並對.cache文件做任何你需要做的事情。
  5. 返回到cmd窗口並鍵入 subst /d j: 要刪除驅動器,或者重新啟動電腦。

編輯:我學到的一個技巧可以縮短這一點。在您遇到問題的資源管理器窗口中,單擊地址欄以便輸入,然後鍵入 cmd 並按 輸入 在該位置啟動命令提示符,然後繼續執行步驟3. :)

編輯2:好的,這個技巧可以進一步擴展。 如果您在探險家的正確路徑上,只需輸入 subst j: . 在地址欄中按Enter鍵。將彈出一個命令窗口,執行命令並再次關閉,然後你去,在資源管理器中彈出一個新的驅動器。


343
2018-05-16 20:20



robocopy empty_dir base_nested_dir / purge - 只需創建一個空目錄,並告訴robocopy清除目標目錄中不在空目錄中的所有內容 stackoverflow.com/a/3320317/588759 - rofrol
剛試過這個,我無法刪除有問題的文件..我使用cygwin與windows,另一種解決方案是刪除文件:rm -R / path / in / question,只要沒有其他程序正在使用該文件你已準備好出發 - John
我有一個問題,SUBST沒有識別J:作為參數(它也沒有看到任何可用的虛擬驅動器)所以John提到的cygwin選項運行良好。 - Tisch
@rofrol,你應該讓你的robocopy評論一個答案:在處理大量子目錄時(比如在 node_modules) - Andy Brown
John的解決方案對我很有用,只需添加-f(強制參數):rm -R -f / pathToDelete - Christophe Keller


您的問題詢問如何在文件名本身太長時刪除文件。如果路徑太長而不僅僅是文件名本身,您可以輕鬆地重命名文件夾以縮短路徑。

但要刪除名稱超過255個字符的文件:

  • 通過運行“CMD.EXE”打開命令提示符
  • 導航到包含該文件的文件夾
  • 使用命令DIR / X,它將顯示文件的短名稱。
  • 使用短名稱刪除。

即,如果文件名為“verylongfilename.fil”,則短名稱將顯示為“verylo~1.fil”,您可以使用該名稱刪除。

請注意,儘管Windows本身可以處理遠超過255個字符的路徑,但大多數GUI(如Windows資源管理器)受限制較短。


65
2018-05-17 06:31



這是一個比接受的更好的答案。 - Ben
選擇的答案更好,因為您可以使用該方法刪除整個文件夾 - mcont
但在Windows 7中似乎DIR / x在這裡根本不會改變任何顯示...... :( - gumuruh
一些NTFS文件系統沒有8.3當量。所以這並不總是有效。 - Ross Presser
來自CMD的Del / S為我工作,即使是8歲的大名字。 - Jeff


谷歌搜索:刪除長文件名 第一個結果

使用解鎖器 http://www.filehippo.com/download_unlocker/

無法刪除文件夾:正在被其他人或程序使用   無法刪除文件:訪問被拒絕已有共享   違反。源文件或目標文件可能正在使用中。該文件是   由另一個程序或用戶使用。確保磁盤未滿或   寫保護,並且該文件當前未被使用。

解鎖者可以提供幫助!只需右鍵單擊文件夾或文件,然後選擇   解鎖。如果文件夾或文件被鎖定,則會列出儲物櫃的窗口   會出現。只需單擊全部解鎖即可完成!


4
2018-05-16 20:18



我確實看到了,但不知道unblocker是否可以安全使用,所以我忽略了它,我會嘗試一下。編輯:沒用。它適用於其他文件,但解壓縮不會出現在下拉列表中 - Chris
當然,這是最簡單的方法,儘管可能需要重新啟動才能完成。 Unlocker沒有任何問題 - 多年來一直在使用它,這是一個非常有用的實用程序。如果文件或文件夾的路徑太長,它將找不到鎖定句柄,但應在下拉列表中提供刪除選項。 - Steve Pettifer
完美無缺 - 有趣的是我安裝了這個軟件,但在這種情況下我沒有使用它。 - Daniel Sokolowski
不適用於我複制圓形連接文件夾的另一個文件夾,但是工作是將每個級別文件夾重命名為一個字符 1 一直然後刪除它。 - Daniel Sokolowski
這是唯一對我有用的答案(我正在使用Windows 10)。非常感謝你! - user26832


微軟有一個 關於刪除不可刪除文件的有用知識庫文章。原因#4與你有關。

您最好的選擇可能是將驅動器映射到文件所在的文件夾(分辨率#3),然後通過該驅動器輸入並刪除它。


3
2018-05-16 20:18



我之前從未意識到我可以“將網絡驅動器映射到我自己的硬盤驅動器上的位置”。這就是我在Windows資源管理器中所做的。導航到驅動器後,我可以輕鬆刪除文件夾和內容。與上面顯示的控制台解決方案相同的原理,但這是一個對我來說更容易的快速GUI解決方案。 - RandomHandle