当“文件名太长”时,删除robocopy创建的递归目录


9

在运行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但收到错误“文件名太长”

我研究了其他解决方案,但我认为我也许可以使用引起问题的工具来解决它。

Answers:


14

使用创建一个空目录mkdir empty,然后使用robocopy empty\ "Application Data\" /mir"它将删除整个目录树。然后发出rmdir emptyrmdir "Application Data进行清理,您就完成了。


3
+1令人难以置信,这需要奥秘才能完成删除文件夹之类的简单操作……
nextgentech 2013年

这个越野车无限递归文件夹让我发疯了!谢谢。
Zofren 2014年

4

您可能可以cd深入到目录中,以删除下面的内容,cd然后再次回到顶部,然后删除剩余的内容。

如果那行不通,并且您仍然遇到问题,请下载我的Hamilton C shell 的免费演示版(完整披露:我是作者),并使用(递归)和(删除任何内容)rm使用它附带的实用程序。)选项。-r-x

rm -rx directoryname

My 内部rm使用了新的长Unicode文件名格式,允许它处理最多32K个字符的路径,应该可以得到它。

如果您发现问题还涉及权限,则可能需要使用sudosu提升权限,例如,

sudo rm -rx directoryname

在非常顽固的情况下,您可能会被阻止访问(例如,cacls报告)的ACL所困扰Everyone:(DENY)。在这种情况下,您可能需要删除该ACE(访问控制项)。

cacls directoryname /e /r everyone

最后,我真的打算对此有所帮助。我的服务器日志告诉我人们正在下载我的软件来尝试此操作,并且我希望它能正常工作。如果遇到这种情况,我希望您能与我联系,以便我调试原因并使其正常运行。您无法删除的东西经常发生,我希望涵盖所有情况。


3

您也可以尝试以下方法之一;

解决方案1:使用自动生成的8.3名称访问文件

解决方案2:重命名或移动深层文件夹

解决方案3:将驱动器映射到路径结构中的文件夹将驱动器映射到目标文件或文件夹路径结构内的文件夹。此方法缩短了虚拟路径。

解决方案4:使用与文件夹一样深的网络共享如果解决方案1、2和3不方便或无法解决问题,请创建一个在文件夹树中尽可能深的网络共享,然后通过访问共享来重命名文件夹。

解决方案5:使用可以穿越深层路径的工具

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


此解决方案似乎是“解决方案5:使用可以穿越深层路径的工具”的一种类型
Aaron 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.