无法删除具有拖尾空格的Windows 7上的文件夹 [英] Can't delete a folder on Windows 7 with a trailing space

查看:1369
本文介绍了无法删除具有拖尾空格的Windows 7上的文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题:我有一个Windows 7子目录,我无法删除。



许多其他地方的互联网上有人问这个一般类的Windows 7文件系统问题,我的问题在这里具体涉及到Windows 7上的不可删除的文件的特定类,它们在目录名中有尾部空格



有没有更好的工具来检查和/或编辑我的文件系统(如果需要,可以用十六进制)?






操作系统:我正在运行x64专业版,并且完全更新。



已尝试的操作:我已阅读了许多有关此主题的网页,并尝试了许多潜在的解决方案。我一直在研究这个问题最近使用PowerShell似乎完全能够处理系统内部。在这一点上,我正在寻找类似文件系统的十六进制编辑器。



不是由
$ b


  • 长文件名或

  • 位于长路径,

使用旧的DOS文件命名方案重命名
  • 运行 (需要显示JavaScript),以下内容应该可以正常运行(请注意,它使用 UNC 路径) 。

      rd\\?\C:\holds bad subdir\20120530-04

    请务必使用cmd.exe执行此操作。它似乎不适用于PowerShell的删除项(rd)。



    另请参阅:




    Issue: I have a Windows 7 sub-directory which I can't delete.

    While I know others here, and many more elsewhere on the Internet have asked about this general class of Windows 7 file system problem, my question here specifically relates to the specific class of un-deletable files on Windows 7 which have a trailing space in the directory name.

    Is there a better tool to inspect and/or edit my filesystem (in hex if need be)?


    OS: I'm running x64 professional and it's fully updated.

    What has been tried: I have read many web pages on this subject and tried many potential solutions. I have been studding the problem most recently using PowerShell which seems to be fully capable of dealing with system internals. At this point I am looking for something like a hex editor for the filesystem.

    What it's not caused by:

    • a long file-name, or
    • by being located in a lengthy path,

    What it's not fixed by:

    • Renaming using the old DOS file naming scheme
    • Running CHKDSK of the entire file system
    • Shutting down all other programs which might be accessing it
    • Disabling virus software
    • Using the Delinvfile.exe 4.5 utility. Note: Delinvfile says that it can't fix, "Files and Folders with a shortname that contains invalid characters. These include the characters [which are disallowed in file-names]:

    <  -  Less than symbol
    >  -  Greater than symbol
    :  -  Colon
    "  -  Quotation Mark
    /  -  Forward Slash
    |  -  Vertical Bar
    ?  -  Question mark
    *  -  Asterisk
    

    What caused it? In my case the un-deletable sub-directory was created some months ago with a custom PHP program that I use for source tree backups. It appears to have either a space or other bad character in the name, but I can't be sure. It is visible in a file directory, but unavailable to delete, rename, rmdir, etc.

    Investigation: I can move it around on my file system and have placed it inside a sub-directory called, 'holds bad subdir' on C:.

    Here you can see it with PowerShell. First I show it with a Get-ChildItem (which is the same as the alias '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
    

    If I try to delete it in a cmd window by typing 'del "2' + tab, it completes the file name expansion as follows: del "20120530-04 ", showing that there is a space at the end of the directory name. When I execute this command the result is:

    Could Not Find C:\holds bad subdir\20120530-04

    If I try to delete it with del 2*, the system returns as if though it had deleted it, but does not.

    If I issue this same command in PowerShell, and also with the Force option, it reports, "An object at the specified path C:\holds bad subdir\20120530-04 does not exist.", as follows:

    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
    

    This is sort of strange because the directory can clearly see it, but any methods apparently either can't see it or can't be applied to it.

    I can also view the un-deletable sub-directory in Windows Explorer. When I browse into it, it says, "this folder is empty". And if I try to delete it there I get:

    Also if I view the properties of this folder I can see that the name is "20120530-04 ", that is, with an extra space at the end.

    Also interestingly, the Security tab reports "(X) The requested security information is either unavailable or can't be displayed."

    And it's not Read-only, nor Hidden.


    Scope of issue: Now, this is not a big problem, it is easy to bury this sub-directory inside an out-of-the-way sub-directory and just not worry about it.

    But for me this has turned into an intellectual challenge and partly a way to learn more about the guts of Windows 7. I guess I am amazed that such a bug in Windows could exist at such a low level, and with so many systems installed in the world. It's hard at this point to know if this is a Windows bug, bad data (that a bug let in), or just bad data.

    解决方案

    According to You cannot delete a file or a folder on an NTFS file system volume (requires JavaScript to display), the following should work (notice it uses a UNC path).

    rd "\\?\C:\holds bad subdir\20120530-04 "
    

    Be sure to do this with cmd.exe. It does not seem to work with PowerShell's Remove-Item (rd).

    Also see:

    这篇关于无法删除具有拖尾空格的Windows 7上的文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

  • 查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆