我经常使用 Node.js 来管理我编写的程序的依赖项,这没什么大不了的。今天我最终得到了如下文件夹结构:
尝试删除任何文件都会遇到此错误:
源文件名大于文件系统所支持的长度。尝试移至路径名较短的位置,或尝试重命名为较短的名称,然后再尝试此操作。
它已经在 C:\ 中了,因此不会变得更短。
答案1
使用 Microsoft 工具robocopy.exe
。
- 创建一个新的空文件夹,例如
c:\empty
然后将该空文件夹复制到包含您要删除的长文件名的文件夹中,例如
c:\myannoyingfolder
。在命令提示符下执行以下操作:robocopy /MIR c:\empty c:\myannoyingfolder
答案2
好吧,假设您想删除一棵树D:\very\long\path
,您不一定需要使用任何工具,例如 Robocopy。
- 转到包含无法删除的目录的驱动器的根目录
- 创建一个具有单个字母名称的目录,例如
D:\a
- 在本例中,导航到要删除的目录内部
D:\very\long\path
- 全选 ( Ctrl+ A) 并剪切 ( Ctrl- X)
- 导航到刚刚创建的文件夹
- 粘贴 (Ctrl- V)
- 现在,移动到根目录并删除临时文件夹,在本例中
D:\a
- 然后返回并删除原目录
答案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 /F
和rmdir /S
(以及在删除时按住 shift 以尝试绕过回收站)。我认为这rmdir /S
实际上删除了所有文件,所以我能够继续删除作为叶节点的文件夹,然后一次向上移动树中的几个节点。最终我把它们全部清理干净了,但这太荒谬了。