當「檔案名稱太長」時刪除由 robocopy 建立的遞迴目錄

當「檔案名稱太長」時刪除由 robocopy 建立的遞迴目錄

在不使用開關的情況下運行 robocopy.exe 備份 C:\Users\ 資料夾後/xj,我最終得到了一個太長的遞歸目錄。例如,如果您執行,dir /b /s您將收到以下錯誤:

目錄名稱 C:\Users\ ... \AppData\Local\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application資料\應用程式資料太長。

我嘗試刪除它,rmdir "Application Data" /s但收到錯誤“文件名太長”

我看過其他解決方案,但我想我也許可以使用該工具造成的問題到解決它。

答案1

使用 建立一個空目錄mkdir empty,然後使用robocopy empty\ "Application Data\" /mir"它將刪除整個目錄樹。然後發出 armdir emptyrmdir "Application Data進行清理,就完成了。

答案2

您可以cd深入到目錄中刪除下面的內容,然後cd再次返回頂部並刪除剩餘的內容。

如果這不起作用並且您仍然遇到困難,請下載免費示範我的 Hamilton C shell 版本(完全披露:我是作者)並使用rm它附帶的實用程式使用-r(遞歸)和-x(刪除任何內容)選項。

rm -rx directoryname

rm用的是新的長 Unicode 檔名內部格式化,允許它操作最多 32K 字元的路徑,這樣應該就可以了。

如果您發現問題也涉及權限,您可能需要使用sudosu提升,例如

sudo rm -rx directoryname

在非常頑固的情況下,您可能會受到阻止存取的 ACL 的阻礙,例如cacls報告Everyone:(DENY)。在這種情況下,您可能需要刪除該 ACE(存取控制條目)。

cacls directoryname /e /r everyone

最後,我真的希望這能有所幫助。我的伺服器日誌告訴我人們正在下載我的軟體來嘗試這個,我希望它能夠工作。如果您遇到沒有成功的情況,我希望您能聯繫我,以便我可以調試原因並使其正常工作。無法刪除的事情經常發生,我希望涵蓋所有情況。

答案3

您也可以嘗試以下其中一項;

決議一:使用自動產生的 8.3 名稱來存取文件

決議2:重新命名或移動深層資料夾

決議3:將磁碟機對應到路徑結構中的資料夾 將磁碟機對應到目標檔案或資料夾的路徑結構中的資料夾。該方法縮短了虛擬路徑。

決議4:使用與資料夾一樣深的網路共用如果解決方案 1、2 和 3 不方便或無法解決問題,請在資料夾樹中建立盡可能深的網路共用,然後重命名資料夾透過存取共用。

決議5:使用可以遍歷深層路徑的工具

http://support.microsoft.com/kb/320081

相關內容