今天,当我尝试使用 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 本身有两种解决此问题的方法。
- 绕过 Win32 路径转换。这可以通过在完全限定路径前加上 来实现
\\?\
。这样做会关闭所有关于有效文件名的 Win32 规则(例如“不能以空格开头或结尾”),只留下一组小得多的 NTFS 规则(例如,不能包含\
或:
)。请注意,它还会关闭方便的简写,例如使用相对路径;如果您想这样做,您必须提供绝对路径(C:\Users\mandar\Desktop\test\ ),并且您需要将其括起来,以便命令行知道您要包含最后一个空格:(是的del "\\?\C:\Users\mandar\Desktop\test\ "
,您应该使用cmd.exe
它;Powershell 会忽略 \?\ ,并且通过 MinGW 或 Cygwin 在 Windows 上运行的类 Unix shell 不使用内核期望的路径格式)。 - 使用 Windows 中的原生 Linux 子系统(通过特殊驱动程序直接在 NT 内核上运行未修改的 Linux 二进制文件)。Linux(如您所见)支持处理名称奇怪的文件,例如
WSL(适用于 Linux 的 Windows 子系统)。如果您以前没有使用过 WSL,则需要从 Windows 应用商店安装一些 Linux 发行版(Ubuntu和OpenSUSE既可用又适合一般用途,卡利如果您想要在 Windows 机器上使用特殊用途的发行版,也可以使用;您可以根据需要安装多个)。从
bash
WSL 发行版内部(或其他 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,否则会出现枚举错误)并单击确定,因为缺少“替换所有子项...”选项。
然后重新打开它并再次执行相同的操作,这次“替换所有子选项”存在,因此勾选该选项和“替换所有者...”复选框。然后单击确定
您现在应该能够编辑以授予管理员权限。再次关闭该菜单,您应该能够删除。
我确信这要么是故障要么是别的什么但对我来说还是有用的。