我妻子有几个文件和文件夹,不知何故,它们的文件名导致无法通过正常方式或命令行删除。我认为文件名太长是因为文件夹结构的深度。有谁知道有什么好的实用程序可以清理这样的文件吗?
答案1
当你想彻底删除一个目录并且它包含长路径时,robocopy
这样做效果非常好:
mkdir empty_dir
robocopy empty_dir the_dir_to_delete /mir
rmdir empty_dir
rmdir the_dir_to_delete
这是因为 robocopy 内部使用支持 Unicode 的 Win32 函数版本,并以\\?\
文件路径作为前缀;这些函数的限制是 2¹⁶-1(32,767)个字符,而不是 259 个。
您可能需要多次执行此过程才能删除所有文件。
答案2
从命令提示符:
dir /X
这将以短名称格式列出您的文件/文件夹。然后使用与所写完全相同的短名称来删除文件:
del LONGF~1.txt
答案3
我逐步进入路径,将每个连续的父文件夹重命名为“1”并尝试删除。每次您都可以有效地缩短路径,而且我从未需要超过 4 或 5 个目录,直到我最终能够删除整个目录结构(这可能是也可能不是您想要的)。您也可以从最后一个子文件夹开始执行此操作,然后向上或向下进行。
答案4
在某些程序中,包括命令提示符(cmd.exe
),您可以通过在完整路径前加上前缀来解决文件长度限制,如下\\.\
所示:
\\.\C:\some directory\other directory\a 长名称文件