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

Man*_*dye 7 permissions rm file-corruption windows-10

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

删除文件夹时显示错误

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

当我尝试删除它时,图像中文件的文件和父文件夹都会出错。

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

rm -d 测试

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

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

rm -r 测试

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

测试`测试/'

所以我尝试了以下命令来删除递归文件结构,

rm -rfd 测试

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

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

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

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

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

带走 /f 测试 /r

输出:

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

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

我尝试了我能找到的所有可能的解决方案,但似乎没有任何效果。如果有人对此问题有任何建议,请将其作为您认为合适的答案或评论发布。先感谢您。

CBH*_*ing 7

您的问题是您有一个名称仅包含空格的文件系统条目(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 外壳不使用内核期望的格式的路径)。
  2. 使用 Windows 中的本机 Linux 子系统(通过特殊驱动程序直接在 NT 内核上运行未经修改的 Linux 二进制文件)。Linux(如您所见)支持处理具有愚蠢名称的文件,例如 WSL(适用于 Linux 的 Windows 子系统)。如果你以前没有使用过 WSL,你需要从 Windows 应用商店安装一些 Linux 发行版(UbuntuOpenSUSE都可用并且适合一般用途,如果你想在你的电脑上安装一个特殊用途的发行版,Kali也可用) Windows 框;如果需要,您可以安装多个)。从bashWSL 发行版的内部(或其他 shell),导航到相关目录 ( cd /mnt/c/Users/mandar/Desktop/test),然后删除有问题的文件 ( rm ' ') 或简单地删除整个目录。


Man*_*dye 1

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

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

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

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