无法删除 Windows 10 中的损坏文件夹

无法删除 Windows 10 中的损坏文件夹

今天,当我尝试使用 WinRAR 反编译 .apk 文件时,出现错误,解压终止。之后,当我尝试删除文件夹时,出现错误,尽管我提供了管理员权限,但我没有文件夹的所有权。

删除文件夹时显示错误

来自文件资源管理器的包含文件的文件夹的图像

当我尝试删除图像中的文件时,该文件及其父文件夹都出现错误。

然后我尝试在管理员模式下使用 cmd 通过以下命令执行相同操作:

rm-d 检验

输出 :: rm: 无法取消链接 `test': 非所有者

我还尝试了以下命令来递归删除文件夹中的文件:

rm -r 测试

输出:rm:警告:循环目录结构。这几乎肯定意味着您的文件系统已损坏。通知您的系统管理员。以下两个目录具有相同的 inode 编号:

测试`test/'

因此我尝试使用以下命令来删除递归文件结构,

rm-rfd 测试

输出:rm:无法取消链接“测试”:不是所有者

我使用的所有上述方法均来自 StackOverflow 或 Microsoft QnA 页面,但似乎没有任何效果。

我也在安全模式下尝试了所有这些。但我仍然收到相同的错误。我还两次收到错误代码为 0x80070091 的错误

该图显示了要删除的文件夹属性窗口的安全选项卡中的权限

我已经尝试使用 takeown 命令获取文件夹的所有权。

takeown /f 测试/r

输出:

成功:文件(或文件夹)“C:\Users\mandar\Desktop\test”现在归用户“MANDAR_SADYE\mandar”所有。

成功:文件(或文件夹)“C:\Users\mandar\Desktop\test\”现在归用户“MANDAR_SADYE\mandar”所有。

我尝试了所有可能的解决方案,但似乎都不起作用。如果有人对此问题有任何建议,请将其作为答案或评论发布。提前谢谢您。

答案1

您的问题是,您有一个文件系统条目,其名称仅包含一个空格(test\,请注意反斜杠后的空格)。这在 NTFS 中在技术上是可行的,但在 Win32 中完全不允许,并且大多数 Windows API 根本无法正常处理它。它们将尝试从文件名末尾删除空格,然后在文件名不再存在时感到非常困惑,并可能将其视为您指的是目录;即使您使用 或 之类的格式,也会发生这种test\*情况" "

Windows 本身有两种解决此问题的方法。

  1. 绕过 Win32 路径转换。这可以通过在完全限定路径前加上 来实现\\?\。这样做会关闭所有关于有效文件名的 Win32 规则(例如“不能以空格开头或结尾”),只留下一组小得多的 NTFS 规则(例如,不能包含\:)。请注意,它还会关闭方便的简写,例如使用相对路径;如果您想这样做,您必须提供绝对路径(C:\Users\mandar\Desktop\test\ ),并且您需要将其括起来,以便命令行知道您要包含最后一个空格:(是的del "\\?\C:\Users\mandar\Desktop\test\ ",您应该使用cmd.exe它;Powershell 会忽略 \?\ ,并且通过 MinGW 或 Cygwin 在 Windows 上运行的类 Unix shell 不使用内核期望的路径格式)。
  2. 使用 Windows 中的原生 Linux 子系统(通过特殊驱动程序直接在 NT 内核上运行未修改的 Linux 二进制文件)。Linux(如您所见)支持处理名称奇怪的文件,例如WSL(适用于 Linux 的 Windows 子系统)。如果您以前没有使用过 WSL,则需要从 Windows 应用商店安装一些 Linux 发行版(UbuntuOpenSUSE既可用又适合一般用途,卡利如果您想要在 Windows 机器上使用特殊用途的发行版,也可以使用;您可以根据需要安装多个)。从bashWSL 发行版内部(或其他 shell)导航到相关目录(cd /mnt/c/Users/mandar/Desktop/test),然后删除有问题的文件(rm ' ')或整个目录。

答案2

运行命令 校验 并查看是否发现错误。

为了进一步了解错误,可以 在 Windows 10 中的事件查看器中读取 Chkdsk 日志

如果发现错误,并且错误听起来不是太严重或者错误太多,请运行以下命令来修复错误:

chkdsk /f

确保在开始之前已对文件进行了良好的备份。

答案3

经过多次尝试和错误,我找到了删除它的方法。在我尝试之前,我找到了解决方案harrymc 的解决方案,因此无法确认他的解决方案是否有效。我的方法并不直接,因此我强烈建议先尝试他的解决方案,然后让我知道它是否有效,以便我可以将其标记为可接受的答案。

所以我遵循的方法是在不同的文件系统中打开该文件夹。

  • 我的做法是通过可启动 Linux 笔式驱动器将其删除(我使用了 Kali,但任何其他发行版都应该可以正常工作)。
  • 您可以尝试通过将文件夹共享到 Linux 的虚拟盒或 VMware 虚拟机来删除它,然后尝试删除它。
  • 第三种方法是在您的本地网络中共享该文件夹,然后尝试从连接到网络的 Android 或 MAC 设备中删除它(请记住,Android 有 Linux 内核,而 MAC 有 Unix,因此两者都可以工作)

所以我猜问题出在 Windows NTFS 文件系统上。正如您所看到的,除了第三种方法之外,您需要以可启动或虚拟机的形式获取辅助操作系统,而大多数人都没有。所以尝试第三种解决方案。如果它不起作用,那么尝试harrymc 的解决方案。如果这还不起作用,那么您可以安装虚拟机或制作可启动的 U 盘并尝试删除它。

答案4

我找到了一种对我有用的解决方法。

在高级安全设置页面,您需要更改为管理员(末尾带有 s,否则会出现枚举错误)并单击确定,因为缺少“替换所有子项...”选项。

然后重新打开它并再次执行相同的操作,这次“替换所有子选项”存在,因此勾选该选项和“替换所有者...”复选框。然后单击确定

您现在应该能够编辑以授予管理员权限。再次关闭该菜单,您应该能够删除。

我确信这要么是故障要么是别的什么但对我来说还是有用的。

相关内容