我使用Windows XP,我的电脑里有一个文件夹经过多种方法的尝试都无法删除,在资源管理器里面删除的时候会有“无法读源文件或文件夹”的错误提示,而在控制台下面用rd(rmdir)命令删除时则又提示“系统找不到指定的文件”,我甚至试过用unixutil的unlink和rm也搞不定它。当然我也尝试过检查文件系统是否存在问题,但是仍然没发现问题所在。这个文件夹的存在简直成了完美主义的我的心腹之患,一直欲除之而后快。
提醒各位朋友,本文只是针对某一特定情况的文件夹无法删除的处理,并不是通用解决方法。其他诸如因为文件/文件夹被进程打开没有关闭或者文件夹下面含有隐含文件而无法删除的情况并不在本文讨论范围之内。
今天,我突然想到既然在控制台方式下删除的时候系统提示无法找到文件,那么我在同一位置再建一个同名文件夹会怎么样呢?遂进入该文件夹所在的文件夹,然后建立了一个同名文件夹,竟然成功了。但是也就在我建立了另一个文件夹的同时,我发现了问题所在。两个同名文件夹的长度肯定也相同,但是我在资源管理器里面以列表形式显示它们的时候,原来无法删除的文件夹的名称被截断了(结尾处显示“...”)而另一个则没有被截断,经过仔细查看,我发现原来无法删除的文件夹结尾处有一个空格。由此基本可以断定,这个文件夹无法删除的原因是由于windows在删除文件夹的某一个步骤把结尾的空格给去掉了,导致在后续的步骤里面系统无法找到那个名称已经变过的文件夹了。这与Windows给出的错误信息也吻合。
找到了问题症结,解决起来就简单了。既然用正常步骤不行,我们可以绕过它,方法就是使用“8.3”格式的短名称来执行操作。取得短名称的办法是在控制台窗口下使用“dir /x”命令,输出内容的倒数第二列就是短名称。有了短名称后再用“rd [文件夹短名称]”命令就可以顺利删除文件夹了。
2005-9-26:既然有人提出看不懂如何操作,我就补充一下详细的操作步骤。
假设删不掉的文件夹在"d:/闹鬼"下面,let's begin
- 点“开始”菜单,点“运行”,这样会打开"运行"对话框。
- 在“运行”对话框中输入cmd,然后点击确定,确定后会打开一个黑黑的窗口,这个就是“控制台”窗口了。
- 在“控制台”窗口中输入"cd d:/闹鬼"来切换当前位置到"d:/闹鬼"下面。如果你的删不掉的文件夹在"c:/闹鬼"下面那么你就需要输入"cd c:/闹鬼"了,依此类推。注意"cd"后面有一个空格。输入完以后就敲回车键。如果命令执行成功则闪烁的光标前面就会出现"d:/闹鬼"字样。
- 再在控制台中输入"dir /x"命令,注意空格。输入完以后就敲回车来运行命令。运行完了窗口中会出现一些信息,分为整齐的好几列(知道什么是列,什么是行吧?),倒数第二列就是“8.3”格式的短名称。短名称通常以"~1"结尾,但也不一定。
- 现在你需要找出你需要删除的文件或者文件夹在哪一行,然后看那行的倒数第二列,把它记下来,然后继续在控制台输入命令,如果是删除文件夹,就输入"rd 刚才记下来的信息",如果是删除文件,就输入"del 刚才记下来的信息",然后回车。注意,命令中的“刚才输入的信息”要替换为你记下来的短名称。
- 如果你的操作没有问题的话那现在文件/文件夹应该被删除了。