Issue:我有一个无法删除的 Windows 7 子目录。
虽然我知道这里的其他人以及互联网上其他地方的许多人都询问过此类一般的 Windows 7 文件系统问题,但我在这里的问题具体涉及 Windows 7 上的特定类别的不可删除文件,这些文件具有目录名称中的尾随空格。
是否有更好的工具来检查和/或编辑我的文件系统(如果需要,可以使用十六进制)?
OS:我正在运行 x64 professional 并且它已完全更新。
已经尝试过的:我已经阅读了许多有关此主题的网页并尝试了许多潜在的解决方案。我最近一直在使用 PowerShell 来研究这个问题,它似乎完全有能力处理系统内部的问题。此时,我正在寻找类似文件系统的十六进制编辑器之类的东西。
不是什么原因造成的:
未解决的问题:
- 使用旧的 DOS 文件命名方案重命名
- Running CHKDSK http://en.wikipedia.org/wiki/CHKDSK整个文件系统的
- 关闭可能正在访问它的所有其他程序
- 禁用病毒软件
- 使用 Delinvfile.exe 4.5 实用程序。注意:Delinvfile 表示它无法修复“短名称中包含无效字符的文件和文件夹。其中包括[文件名中不允许使用的字符]:
< - Less than symbol
> - Greater than symbol
: - Colon
" - Quotation Mark
/ - Forward Slash
| - Vertical Bar
? - Question mark
* - Asterisk
是什么原因造成的呢?就我而言,不可删除的子目录是几个月前使用自定义创建的PHP http://en.wikipedia.org/wiki/PHP我用于源树备份的程序。名称中似乎有空格或其他不良字符,但我不能确定。在文件目录中可见,但不可删除、重命名、rmdir等。
调查:我可以在我的文件系统上移动它,并将其放置在 C: 上名为“holds bad subdir”的子目录中。
在这里你可以看到它使用 PowerShell http://www.microsoft.com/powershell。首先我用一个来展示它获取子项目 http://technet.microsoft.com/en-us/library/hh849800.aspx(与别名“dir”相同):
PS C:\holds bad subdir> Get-ChildItem
Directory: C:\holds bad subdir
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 1/9/2014 3:01 AM 20120530-04
如果我尝试在cmd窗口中输入“del”2”+tab来删除它,它会完成文件名扩展,如下所示:del“20120530-04”,显示目录名末尾有一个空格。当我执行这个命令时,结果是:
找不到 C:\ 包含错误的子目录\20120530-04
如果我尝试使用 del 2* 删除它,系统会返回好像已删除它一样,但实际上并没有。
如果我在 PowerShell 中发出相同的命令,并且还使用Force
选项,它报告“指定路径 C:\holds bad subdir\20120530-04 处的对象不存在。”,如下所示:
PS C:\holds bad subdir> Remove-Item 2* -Force Remove-Item : An object at the specified path C:\holds bad subdir\20120530-04 does not exist.At line:1 char:1
+ Remove-Item 2* -Force
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Remove-Item], PSArgumentException
+ FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RemoveItemCommand
这有点奇怪,因为目录可以清楚地看到它,但任何方法显然要么看不到它,要么无法应用于它。
我还可以查看不可删除的子目录Windows资源管理器 http://en.wikipedia.org/wiki/Windows_Explorer。当我浏览它时,它说“此文件夹是空的”。如果我尝试删除它,我会得到:
另外,如果我查看特性在这个文件夹中,我可以看到名称是“20120530-04”,即末尾有一个额外的空格。
另外有趣的是,“安全”选项卡报告“(X) 请求的安全信息不可用或无法显示”。
它不是只读的,也不是隐藏的。
发行范围:现在,这不是一个大问题,很容易将此子目录埋在一个偏僻的子目录中,而不必担心它。
但对我来说,这已经变成了一项智力挑战,部分是一种了解 Windows 7 内部结构的方式。我想我很惊讶 Windows 中的此类错误可能存在于如此低的级别,并且安装了如此多的系统世界。此时很难知道这是 Windows 错误、错误数据(错误引入的)还是只是错误数据。