无法删除文件/夹的原因和解决方法

网络整理 - 07-29
概要

  您可能无法删除 NTFS 文件系统卷上的文件或文件夹。本文介绍以下两方面内容:为什么您可能无法删除 NTFS 卷上的文件或文件夹,以及如何解决造成此问题的各种不同原因以消除此问题。

  更多信息

  注意:在内部,NTFS 将文件夹看作是特殊类型的文件。因此,本文中的“文件”一词可能指文件,也可能指文件夹。

  原因 1:文件使用了访问控制列表

  如果某个文件使用了访问控制列表 (ACL),您可能无法删除该文件。要解决此问题,请更改该文件上的权限。您可能需要拥有这些文件的所有权才能更改权限。

  管理员具有取得任何文件所有权的隐含能力,即使未明确向他们授予针对此文件的任何权限也是如此。文件所有者具有修改文件权限的隐含能力,即使未明确向他们授予针对此文件的任何权限也是如此。因此,您可能需要取得对某个文件的所有权,赋予自己删除文件的权限,然后才能删除文件。

  因为文件使用了不规范的 ACL 而不能使用某些安全工具显示或修改其权限

  要解决此问题,请使用另一种工具(例如,Cacls.exe 的更新版本)。

  根据所属类型,ACL 中的访问控制项 (ACE) 有特定的优先顺序。例如,拒绝访问的 ACE 一般位于授予访问权的 ACE 之前。不过,我们无法防止某个程序编写按任意顺序安排 ACE 的 ACL。在 Windows 的一些早期版本中,当 Windows 尝试读取这些“不规范”的 ACL 时会出现问题。在某些情况下,无法通过使用 Windows 资源管理器图形化安全性编辑器正确修改这些 ACL。此问题在 Windows 的更高版本中得到了纠正。如果您遇到了此问题,请使用最新版本的 Cacls.exe。即使无法显示或编辑一个现有的 ACL,您也可以编写一个允许您访问该文件的新 ACL。

  原因 2:文件正在使用中

  如果文件正在使用中,则可能无法删除该文件。要解决此问题,请确定具有打开句柄的进程,然后关闭此进程。

  根据文件打开的方式(例如以独占访问而不是共享访问方式打开),您可能无法删除使用中的文件。任何时候,您都可以使用多种工具来帮助确定拥有文件打开句柄的进程。

  如欲进一步了解可用来确定拥有文件打开句柄的进程的工具,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:

  242131 如何显示具有已打开文件的进程的列表

  172710 如何使用 Windows NT 4.0 资源包中的 OH 工具

  此问题的“症状”可能多种多样。您可能能够使用删除命令删除一个文件,但在打开该文件的进程释放该文件之前,该文件实际上并未删除。另外,您可能无法访问正在删除中的文件的安全对话框。要解决此问题,请确定具有打开句柄的进程,然后关闭此进程。

  原因 3:文件系统损坏使您无法访问此文件

  如果文件系统被破坏,则可能无法删除此文件。要解决此问题,请在磁盘卷上运行 Chkdsk 实用工具以纠正任何存在的错误。

  磁盘上的坏区、其他硬件故障或者软件错误都可能会损坏文件系统,使文件出现问题。典型操作失败的方式可能各不相同。当文件系统检测到有损坏时,它将在事件日志中记录一个事件,而且您通常会收到一条提示您运行 Chkdsk 的信息。根据损坏的性质,Chkdsk 可能能够也可能无法恢复文件数据;不过,Chkdsk 可以使文件系统返回到一种在内部一致的状态。

  有关如何使用 Chkdsk 实用工具的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:

  176646 错误信息:文件或目录损坏...

  187941 对 CHKDSK 和新的 /C 和 /I 开关的解释