如何删除路径太长而无法删除的文件[重复]


202

我正在使用我发现的一些计算机视觉源代码,并没有意识到它创建了一个具有非常长的名称的缓存文件,现在我无法删除其中的2个。

我试图将它重命名为更短的名称,但我无法对文件做任何事情,我也试图重新启动计算机,看看它是否会消失。

错误消息说:

目的地路径太长。

目标文件夹的文件名太长。您可以缩短文件名并重试,或尝试使用较短路径的位置。

截图

在这种情况下如何删除文件?


它会在命令行中使用del命令吗?沿着线的东西del *.cache应该删除当前目录下的所有文件.cache。
瑞安

“路径\到\文件夹\ CACHEI~系统找不到指定的文件”说两次,那里有2个文件,但没有做任何事
克里斯

再想一想,您可以查看已经回答的其他问题之一。例如这一个
瑞恩

如果这两个文件是目录中唯一剩下的文件,那么删除整个目录可能会更好。从命令提示符,尝试rd /s directoryname 这将消灭其中的directoryname所有文件/子目录,所以谨慎使用:)
bitsmack

Answers:


352

假设你在Windows上:

我一直在做的是使用subst来创建与路径的一部分的驱动器号关联。

然后转到新的驱动器号并导航到具有长名称的文件。您现在应该能够重命名/删除/等等。这样做的原因是因为路径本身不再包含> 255个字符。

创建一个subst文件夹

  1. 启动命令提示符(不需要管理员权限)
  2. 使用cd导航到你想要去的文件夹(你可以使用tab自动完成名称
  3. 键入subst j: .以创建驱动器关联。(而不是。你也可以输入整个路径)
  4. 现在在资源管理器中,您在此PC中有一个新的驱动器号。转到它并对.cache文件做任何你需要做的事情。
  5. 返回到cmd窗口并键入subst /d j:以删除驱动器,或者重新启动电脑。

编辑:我学到的一个技巧可以缩短这一点。在您遇到问题的资源管理器窗口中,单击地址栏以便输入,然后键入cmd并按下Enter以在该位置启动命令提示符,然后继续执行步骤3. :)

编辑2:好的,这个技巧可以进一步扩展。如果您位于正确路径的资源管理器中,只需subst j: .在地址栏中输入并按Enter即可。将弹出一个命令窗口,执行命令并再次关闭,然后你去,在资源管理器中弹出一个新的驱动器。


25
robocopy empty_dir base_nested_dir / purge - 只需创建一个空目录,并告诉robocopy清除目标目录中不在空目录中的所有内容stackoverflow.com/a/3320317/588759
rofrol 2014年

7
刚试过这个,我无法删除有问题的文件..我使用cygwin与windows,另一种解决方案是删除文件的方式:rm -R / path / in / question,只要没有其他程序正在使用该文件你是好去
约翰·

1
我有一个问题,SUBST没有识别J:作为参数(它也没有看到任何可用的虚拟驱动器)所以John提到的cygwin选项工作得很好。
Tisch 2015年

1
@rofrol,你应该让你ROBOCOPY评论一个答案:这是远远比做有很多子目录的问题时(像那些创造了名字接近的目录比较容易node_modules
安迪·布朗

1
John的解决方案对我来说非常好,只是添加了-f(强制参数):rm -R -f / pathToDelete
Christophe Keller

67

您的问题询问如何在文件名本身太长时删除文件。如果路径太长而不仅仅是文件名本身,您可以轻松地重命名文件夹以缩短路径。

但要删除名称超过255个字符的文件:

  • 通过运行“CMD.EXE”打开命令提示符
  • 导航到包含该文件的文件夹
  • 使用命令DIR / X,它将显示文件的短名称。
  • 使用短名称删除。

即,如果文件名为“verylongfilename.fil”,则短名称将显示为“verylo~1.fil”,您可以使用该名称删除。

请注意,尽管Windows本身可以处理远超过255个字符的路径,但大多数GUI(如Windows资源管理器)受限制较短。


16
这是一个比接受的更好的答案。

3
选择的答案更好,因为您可以使用该方法删除整个文件夹
mcont

2
但在Windows 7中似乎DIR / x根本没有改变任何显示... :(
gumuruh 2016年

3
一些NTFS文件系统没有8.3当量。所以这并不总是有效。
Ross Presser 2016年

来自CMD的Del / S为我工作,即使是8号的大名。
杰夫

4

谷歌搜索:删除长文件名 第一个结果

使用Unlocker http://www.filehippo.com/download_unlocker/

无法删除文件夹:正在被其他人或程序使用无法删除文件:访问被拒绝存在共享冲突。源文件或目标文件可能正在使用中。该文件正由另一个程序或用户使用。确保磁盘未满或写保护,并且该文件当前未在使用中。

解锁者可以提供帮助!只需右键单击文件夹或文件,然后选择Unlocker。如果文件夹或文件被锁定,则会出现储物柜的窗口列表。只需单击全部解锁即可完成!


1
我确实看到了,但不知道unblocker是否可以安全使用,所以我忽略了它,我会尝试一下。编辑:没有用。它的工作原理上的其他文件,但unblocker在降不下来出现
克里斯-

当然,这是最简单的方法,虽然可能需要重新启动才能完成。Unlocker没有任何问题 - 多年来一直在使用它,这是一个非常有用的实用程序。如果文件或文件夹的路径太长,它将找不到锁定句柄,但应在下拉列表中提供删除选项。
史蒂夫佩蒂弗2015年

1
工作完美 - 有趣的是我安装了这个软件,但在这种情况下我没有想到使用它。
Daniel Sokolowski 2016年

不适用于我复制圆形连接文件夹的另一个文件夹,但是工作是将每个级别文件夹重命名为一个字符1,然后将其删除。
Daniel Sokolowski

这是唯一对我有用的答案(我正在使用Windows 10)。非常感谢你!
user26832 2016年

3

Microsoft有一篇关于删除不可删除文件有用知识库文章。原因#4与您有关。

您最好的选择可能是将驱动器映射到文件所在的文件夹(分辨率#3),然后通过该驱动器输入并删除它。


1
我之前从未意识到我可以“将网络驱动器”映射到我自己的硬盘驱动器上的某个位置。这就是我在Windows资源管理器中所做的。导航到驱动器后,我可以轻松删除文件夹和内容。与上面显示的控制台解决方案相同的原理,但这是一个对我来说更容易的快速GUI解决方案。
RandomHandle 2016年
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.