【发布时间】:2014-01-31 02:32:00
【问题描述】:
问题:我有一个无法删除的 Windows 7 子目录。
虽然我在这里认识其他人,并且 Internet 上的其他许多地方都询问过此类 Windows 7 文件系统问题,但我在这里的问题具体涉及 Windows 7 上特定类别的不可删除文件,这些文件具有 目录名称中的尾随空格。
是否有更好的工具来检查和/或编辑我的文件系统(如果需要,可以使用十六进制)?
操作系统:我正在运行 x64 专业版,它已全面更新。
已尝试过什么:我已经阅读了许多有关此主题的网页,并尝试了许多潜在的解决方案。我最近一直在使用 PowerShell 研究这个问题,它似乎完全有能力处理系统内部问题。在这一点上,我正在寻找文件系统的十六进制编辑器之类的东西。
不是什么原因造成的:
- 长文件名,或
- 位于漫长的道路上,
未解决的问题:
- 使用旧的 DOS 文件命名方案重命名
- 运行整个文件系统的CHKDSK
- 关闭所有其他可能正在访问它的程序
- 禁用病毒软件
- 使用 Delinvfile.exe 4.5 实用程序。注意:Delinvfile 说它无法修复,“短名称包含无效字符的文件和文件夹。这些包括字符[文件名中不允许使用]:
< - Less than symbol > - Greater than symbol : - Colon " - Quotation Mark / - Forward Slash | - Vertical Bar ? - Question mark * - Asterisk
是什么原因造成的? 就我而言,不可删除的子目录是几个月前使用自定义的PHP 程序创建的,我用于源树备份。它的名称中似乎有空格或其他不良字符,但我不能确定。在文件目录中可见,但不能删除、重命名、rmdir等。
调查:我可以在我的文件系统上移动它,并将其放置在 C: 上名为“持有错误子目录”的子目录中。
在这里你可以看到它with PowerShell。首先我用Get-ChildItem(与别名'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:\holds bad subdir\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 Explorer 中查看不可删除的子目录。当我浏览它时,它说,“这个文件夹是空的”。如果我尝试在那里删除它,我会得到:
另外,如果我查看这个文件夹的properties,我可以看到名称是“20120530-04”,也就是说,末尾多了一个空格。
另外有趣的是,安全选项卡报告“(X) 请求的安全信息不可用或无法显示。”
而且它不是只读的,也不是隐藏的。
问题范围:现在,这不是什么大问题,很容易将这个子目录埋在一个偏僻的子目录中,不用担心.
但对我来说,这已经变成了一项智力挑战,部分原因是为了更多地了解 Windows 7 的内容。我想我很惊讶 Windows 中的这样一个错误可能以如此低的水平存在,而且有这么多安装在世界各地的系统。在这一点上很难知道这是一个 Windows 错误、错误数据(一个错误进入)还是只是错误数据。
【问题讨论】:
-
我想知道所谓的空间是否真的是一些奇怪的(unicode?)字符。也许
DIR >textfile可能会向十六进制编辑器显示更多信息? -
我的问题完全一样,除了一个小细节:我什至无法移动文件夹。来自已接受解决方案的命令最终将其删除。本来这个文件夹是WinRAR创建的,结果不小心多了多余的空间。
标签: powershell windows-7 cmd explorer delete-directory