2011-01-05 20:49:15 +0000 2011-01-05 20:49:15 +0000
28
28

如何删除不能删除的文件和文件夹?

我有一个以前Windows的Documents and Settings文件夹的备份,里面只有我原来的用户,还有2个目录内。FavoritesLocal Settings

当我尝试删除Local Settings时,我得到这个错误。

我在cmdshell中运行了这个:

attrib *.* -r -a -s -h /s

…但它没有帮助,也没有返回任何错误/警告。

我在多个级别反复使用FavoritesUnlocker v1.8.5来查看是否有任何文件在使用中,但两者总是说: 无文件锁定没有文件被锁定

更新#1:

我能够_重命名目录,现在在(试图)删除之前给我这个警告。

如果我按Yes(或Yes to All),然后我得到这个错误。

Update #2:

我让LockHunter运行,这需要重启,因为它在我的主系统分区上。在第2阶段扫描期间,我收到了大约40个这样的文件。

从文件25的索引$0中删除一个索引条目。

……接着是:

删除文件25的索引$0的索引条目。

删除37576号文件索引$I30中的索引条目cookie。

……但当我试图删除时,我还是得到了上面第一个错误对话框。

我又运行了一次chkdsk,这次是:chkdsk /f。没有产生任何信息。删除时也是同样的结果。

Update #3:

深入研究,chkdsk /f /r是位于这里深处的许多目录之一的名称。

C:\Documents and Settings.OLD\User\Local Settings\Application Data\Microsoft\Messenger\address@hotmail.com\SharingMetadatauser@hotmail.com\DFSR\Staging\CS{D4E4AE55-B5E2-F03B-5189-6C4DA6E41788}

在这些目录中,每一个文件的名字都是:

2300-{C93D01AC -0739 -4FD9 -88C7 -13D2F21A208E}-v2300-{C93D01AC -0739 -4FD9 -88C7 -13D2F21A208E}-v2300 -Downloaded.frx

我注意到,与所有的目录不同,我无法重命名这些文件。我还注意到,文件+目录名非常长:

原始目录=194个字符 文件名=100多个字符 总长度超过了255个字符的限制,这是不好的,也解释了我在更新#1中发布的错误信息。

部分解决方案。

重命名所有目录,直到路径总长度小于100。之后我就可以重命名99文件了,更不用说删除.frx目录内的所有东西了。

这只是部分的解决方案,因为这些(空)目录仍然不能删除,

C:\1\2\Favorites\WienWhat To Do…

C:\1\2\Favorites\Photography\FIRE

和上面的错误一样。

这里是资源管理器属性对两个文件夹的显示。

Update #4 (另一个部分解决方案):

使用harrymc的答案,结合彻底阅读这篇令人惊奇的MS-KB文章,其中包含了几乎每个人的想法,还有一些,标题不显眼: 你不能删除NTFS文件系统卷上的文件或文件夹

我能够删除第2个文件夹Local Settings–问题是最后有一个看不见的尾部空格。我很幸运,当我用他建议的C:\Favorites\Photography\FIRE命令进行自动完成时。

注意:普通的del "\?\<path>"并不奏效,从del删除也不奏效。

现在剩下的就是第一个目录explorer了 (是的,我无休止地尝试了上述解决方案的多种组合;)

答案 (11)

29
29
29
2011-01-29 01:02:33 +0000

del是用来删除文件的,rd又名rmdir是用来删除文件夹的,所以… …

rd /s "\?\C:\Favorites\Wien\What To Do.."

……应该就可以了! :-)

/s参数

除目录本身外,还删除指定目录中的所有目录和文件。
用于删除目录树。


如果这样做不起作用;即使是通配符/自动补全也不起作用;那么你就有腐败问题。

6
6
6
2011-01-05 20:56:00 +0000

我会尝试按照Jeff的建议先运行chkdsk。如果这样不行,你可以用linux live光盘启动,挂载硬盘,然后在linux live环境中删除文件夹。

6
6
6
2011-01-05 20:53:18 +0000

你很可能有FS(文件系统)损坏。运行 chkdsk 然后尝试删除文件。

还要确保该目录内没有任何东西在使用,就像警告所建议的那样。

我也建议在做任何事情之前,先对你的重要文件进行备份。

5
5
5
2011-01-18 12:39:06 +0000

以下是我读到的在微软的支持网站上:

1)使用dir /x获取文件/文件夹的短名(8.3符号) 2)使用rmdir /s shortname删除长名不标准的文件夹。

5
5
5
2011-01-06 01:47:05 +0000

当我试图删除时,我仍然收到上面的错误99对话框。

99并不是一个错误的数字–它是你要删除的文件夹内的一个文件或文件夹的名称。寻找这一项。

一旦你找到它,它只是在抱怨权限错误。这很有可能是因为用户的配置文件文件夹中的某些东西被设置为只有该用户的权限,而没有其他人的权限,并且被设置为不继承父辈的权限,或者因为其他原因,文件的所有权限都丢失了。结果就是你电脑上的任何用户账户都无法对文件或文件夹做任何事情。

要解决这个问题,右击文件(或它的包含文件夹,以确保你得到所有的东西),从上下文菜单中选择Properties,然后在打开的对话框中选择Security标签。这个屏幕会有一个Advanced按钮,你应该点击它。在打开的对话框中寻找Owner标签。现在你应该可以使用这个窗口来获得所有权,这将为项目分配新的权限条目,最后允许你删除它。

3
3
3
2011-01-18 20:22:20 +0000

你也许可以在cmd中使用Unicode `\?你也许可以在cmd中使用Unicode 语法来删除太长的目录,因为这种语法的路径长度被 “限制 "为32,767个字符:

del /s /f /q "\?\C:\Documents and Settings.OLD\User\Local Settings\Application Data\Microsoft\Messenger\address@hotmail.com\SharingMetadata\user@hotmail.com\DFSR\Staging\CS{D4E4AE55-B5E2-F03B-5189-6C4DA6E41788}\"
rmdir "\?\C:\Documents and Settings.OLD\User\Local Settings\Application Data\Microsoft\Messenger\address@hotmail.com\SharingMetadata\user@hotmail.com\DFSR\Staging\CS{D4E4AE55-B5E2-F03B-5189-6C4DA6E41788}\"

一旦你得到一个你也许可以在cmd中使用Unicode\?你也许可以在cmd中使用Unicode 语法来删除太长的目录,因为这种语法的路径长度被 "限制 "为32,767个字符:

del /s /f /q "\?\C:\Documents and Settings.OLD\User\Local Settings\Application Data\Microsoft\Messenger\address@hotmail.com\SharingMetadata\user@hotmail.com\DFSR\Staging\CS{D4E4AE55-B5E2-F03B-5189-6C4DA6E41788}\"
rmdir "\?\C:\Documents and Settings.OLD\User\Local Settings\Application Data\Microsoft\Messenger\address@hotmail.com\SharingMetadata\user@hotmail.com\DFSR\Staging\CS{D4E4AE55-B5E2-F03B-5189-6C4DA6E41788}\"

一旦你得到一个,按tab键来循环浏览目录名可能会有帮助,这样Windows就会开始自动完成该文件夹下存在的目录。

请参阅微软的【命名文件、路径和命名空间】(http://msdn.microsoft.com/en-us/library/aa365247%28v=vs.85%29.aspx)。

2
2
2
2011-01-29 08:30:50 +0000

我个人同意byachna和CarlF的观点,Linux的Live CD是你最好的选择。Linux并不关心权限,所以你可以在没有抱怨的情况下进入并删除东西。我从来没有在linux上用NTFS写过任何问题。我已经经常这样做了好几年了。

我明白你不想在linux上捣乱,所以我建议用别的方法。Ashimema已经建议过的东西……但忘了几个链接。你可以试试许多windows的live cd,而不是linux的live cd。 http://www.ubcd4win.com/ (需要xp安装cd才能创建) http://www.reatogo.de/REATOGO.htm (需要xp安装cd才能创建) http://www.nu2.nu/pebuilder/ (需要xp安装cd才能创建) http://www.vistape.net/index.php (需要vista安装dvd才能创建)

试着在你决定使用的live cd中启动,并删除导致所有问题的文件夹。由于是windows系统,它将强制执行文件权限。你可能需要改变文件的权限或所有权才能删除它们。甚至可以尝试一下Live Windows CD中的"\?\“技巧。

另一个可以尝试的方法是用caclsicacls命令来看看你是否可以给自己的文件夹权限。

0
0
0
2011-01-18 16:56:30 +0000

使用NTFS识别的Linux发行版启动系统,比如Ubuntu liveCD。

挂载Windows文件系统。

删除任何你想要的东西,因为Windows不会说 “不"。

在做这个之前,先做一个完整的备份。

0
0
0
2011-06-28 15:27:38 +0000

姗姗来迟,但这个方法在大多数时候都是有效的,如果不从linux发行版启动,从那里删除。

打开一个升高的命令提示符窗口并保持打开状态。

关闭所有打开的程序。

点击 “开始"、"运行 "并输入TASKMGR.EXE 进入 "进程 "选项卡并结束 "Explorer.exe "上的进程,让任务管理器打开。

回到命令提示符窗口,换到AVI(或其他不可删除的文件)所在的目录。在命令提示符下键入DEL<<你想删除的文件的完整路径>>,或任何你想要的命令。

回到任务管理器,点击文件,新建任务,输入EXPLORER.EXE重新启动GUI shell。关闭任务管理器。

0
0
0
2011-01-20 00:45:33 +0000

有很多曲折而困难的方法来解决这个问题,因为我过去已经发现了。

现在我对自己所做的事情很有信心,我可以简单地运行一个chkdsk,然后启动一个live cd来删除文件,如果还有问题的话(如果你担心linux对ntfs的能力,那么可以试试 BartPE 或者[Windows PE][2],这两个都是可以免费使用的)

如果你要走很长的路,所有其他的建议肯定会帮助你缩小实际错误的范围。

-1
-1
-1
2011-01-06 03:18:18 +0000

Joel的回答对了一半,你需要先激活安全选项卡,进入控制面板/>文件夹选项和第二个选项卡(我忘了名字),在选项列表的最后,有一个关于高级文件夹管理的东西(同样我不知道英文名字是什么),一旦你这样做了,你就可以在安全选项卡中为你的用户设置权限,如前所述。