这个问题已经在这里有了答案:
- 如何删除路径/名称太长而无法正常删除的目录 23个答案
我的妻子有几个文件和文件夹,它们以某种方式最终导致文件名通过常规方式或通过命令行不可删除(无法删除)。我相信由于文件夹结构的深度,文件名太长。有谁知道一个很好的工具来清理这样的文件?
CTRL
+DELETE
的7zip方法是最简单的方法...
这个问题已经在这里有了答案:
我的妻子有几个文件和文件夹,它们以某种方式最终导致文件名通过常规方式或通过命令行不可删除(无法删除)。我相信由于文件夹结构的深度,文件名太长。有谁知道一个很好的工具来清理这样的文件?
CTRL
+DELETE
的7zip方法是最简单的方法...
Answers:
当您想完全删除一个目录并且该目录包含长路径时,robocopy
它做得很好:
mkdir empty_dir
robocopy empty_dir the_dir_to_delete /mir
rmdir empty_dir
rmdir the_dir_to_delete
之所以可行,是因为robocopy在内部使用Win32函数的Unicode感知版本,并且\\?\
文件路径带有前缀;这些函数的字符数限制为2 1 -1(32,767),而不是259。
您可能需要多次执行此过程才能删除所有文件。
在命令提示符下:
dir /X
这将以短名称格式列出您的文件/文件夹。然后,使用与编写时完全相同的简称删除文件:
del LONGF~1.txt
dir
或cd ..
。
dir
使用它pushd
。那对我有用。
我按自己的方式进行进度,将每个连续的父文件夹重命名为“ 1”并尝试删除。您每次都在有效地缩短路径,而我终于不必删除4个或5个以上的目录,直到我终于能够删除整个目录结构(可能是或不是您想要的)。您也可以从最后一个子文件夹执行此操作,然后上下移动。
mv * 1 && cd 1
。当目录中有多个文件时,此方法不起作用,但rm -rf *
通常可以解决问题。
在某些程序中,包括命令提示符(cmd.exe
),您可以通过在完整路径前加上以下前缀来避免文件长度限制\\.\
:
\\。\ C:\ some目录\ other目录\长文件
rm -rf \\directoryname
我用来绕过“完整路径和文件名”长度限制以移动,复制或删除某些内容的一个技巧是,通过使用指向文件夹的映射驱动器号 “中途”(或更多)“ 插入 ”来缩短它顺路。
所以你有c:\ some \ long \ path ... \ and \ foo \ bar \ folders \ oldfiles \ myoldfile.txt。
然后将任意驱动器号映射到该路径上的某个位置,以使路径的第一块长度只有几个字符。前提条件-文件夹必须位于共享文件夹中(如果它位于服务器上,则可能已经存在,这是我需要这样做的位置),如果尚未存在,则在路径中的某个位置选择一个文件夹并分享。根据您的环境和妄想症级别,只要NTFS权限受到合理限制,所有人都可以修改对共享的访问。如果需要,仅允许您自己的帐户修改权限。
现在转到共享文件夹或其中的一个共享文件夹,或使用命令行,如下所示。假设您将文件夹“ foo”共享为“ fooshare”,则可以
net use x: \\mycomputername\fooshare\bar\folders /persistent:no
X:驱动器现在直接指向该共享内部的文件夹“文件夹”,因此“ x:\ oldfiles \ myoldfile.txt”现在很短。
(“ / persistent:no”表示这将在下次重新启动后继续存在,并在以后使您感到困惑。完成操作后,请不要忘记取消共享文件夹。)
请记住,您不必共享包含文件的文件夹,如果它已经在共享文件夹中,则只需将共享和嵌套文件夹映射到该文件附近的目标文件夹即可。
当我们意识到用户已将驱动器映射到文件夹结构中很深的位置时,我不得不使用此技术在两台服务器之间进行大规模的robocopy,因此他们能够从那里使用255个字符,但超出了文件路径的总长度从本地驱动器根目录访问时。
subst x: C:\Some\first\part\of\the\long\path
subst x: /d
subst
伎俩似乎运作良好,只要文件名不是那么只要使它即使在驱动器的根去了260个字符。
net use
,可以使用默认的管理员共享:net use x: \\localhost\c$\bar\folders /persistent:no
我发现的最简单的方法是从ubuntu live CD启动。
或者,您可以在路径的中途创建一个共享文件夹,然后将网络驱动器映射到该路径,然后从映射的文件夹中进行删除(即使在同一台计算机上)
重命名剪切/粘贴文件的目录,然后将其删除。在这里工作。
或者,如果您不想遇到麻烦,也可以仅从命令提示符下输入。
node_modules
文件夹),将其拖到桌面上并删除。一次冲洗几个文件夹时,请冲洗并重复。真是个令人讨厌的问题。
可能不是最好的方法,我很想知道其他人的想法-
我曾经有过一次,尝试了几件事却没有任何运气。我没有寻找一个好的工具,而是带着Windows磁盘重新启动,进入了恢复控制台,然后从那里删除了它。第一次工作,真的很好!
此外,刚刚为您做了一个Google,发现了这一点-DelinvFile看起来不错,但不能担保。
编辑-警告,刚才看到的只是试用-可能不如我最初想象的好!