强制删除名称较长的文件

强制删除名称较长的文件

我经常使用 Node.js 来管理我编写的程序的依赖项,这没什么大不了的。今天我最终得到了如下文件夹结构:在此处输入图片描述

尝试删除任何文件都会遇到此错误:

源文件名大于文件系统所支持的长度。尝试移至路径名较短的位置,或尝试重命名为较短的名称,然后再尝试此操作。

它已经在 C:\ 中了,因此不会变得更短。

答案1

使用 Microsoft 工具robocopy.exe

  1. 创建一个新的空文件夹,例如c:\empty
  2. 然后将该空文件夹复制到包含您要删除的长文件名的文件夹中,例如c:\myannoyingfolder。在命令提示符下执行以下操作:

    robocopy /MIR c:\empty c:\myannoyingfolder

答案2

好吧,假设您想删除一棵树D:\very\long\path,您不一定需要使用任何工具,例如 Robocopy。

  1. 转到包含无法删除的目录的驱动器的根目录
  2. 创建一个具有单个字母名称的目录,例如D:\a
  3. 在本例中,导航到要删除的目录内部D:\very\long\path
  4. 全选 ( Ctrl+ A) 并剪切 ( Ctrl- X)
  5. 导航到刚刚创建的文件夹
  6. 粘贴 (Ctrl- V
  7. 现在,移动到根目录并删除临时文件夹,在本例中D:\a
  8. 然后返回并删除原目录

答案3

您可以将此功能集成到 Windows Shell 中。我对 Flo 的回答的补充太长了,无法发表评论。

Delete在 Windows 上下文菜单中添加了一个命令。

在此处输入图片描述

delete.reg文件添加注册表项以将文件夹与robodelete.bat批处理文件关联。

删除注册表

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\Delete]

[HKEY_CLASSES_ROOT\Directory\shell\Delete\command]
"Extended"=""
@="\"D:\\Documents\\robodelete.bat\" \"%1\""

删除机器人

mkdir c:\empty
robocopy /MIR c:\empty %1
rmdir %1
rmdir c:\empty

笔记:您可能需要根据您的偏好更改两个文件中的路径。

警告:无法撤消此命令。它不使用回收站,也不会在彻底销毁文件夹之前要求 Y/N 确认!

答案4

我开始输入这个问题,同时尝试了多个命令,包括del /Frmdir /S(以及在删除时按住 shift 以尝试绕过回收站)。我认为这rmdir /S实际上删除了所有文件,所以我能够继续删除作为叶节点的文件夹,然后一次向上移动树中的几个节点。最终我把它们全部清理干净了,但这太荒谬了。

相关内容