栏目分类
系统安全 | 服务器安全 | 网络安全 | 木马病毒 | 漏洞补丁 | 防火墙 | 系统安全 | 备份恢复 | 安全策略
系统优化 | 提速 | 优化性能 | 服务 | 清理垃圾
网络技巧 | 网络命令 | 网络技巧 | 网络访问 | 共享 | 网络管理
服务器技术 | Exchange | FTP服务器 | ISAServer | 域服务器 | Web服务器 | SQLServer | 其他服务器
系统技巧 | 系统管理 | 系统技巧 | 注册表 | 进程
windows新手入门 | 系统基础 | 网络基础 | 安装 | 技术前沿
系统故障 | 网络故障 | 开关机故障 | 系统故障 | 软件故障 | 当机故障
资讯动态
排行榜
·无法删除文件或文件夹的原因和解决方法
·WindowsXP下打印机无法共享问题的解决
·如何解决看不到网上邻居其它电脑?
·SATA硬盘安装XP找不到驱动的解决方法
·IE浏览器自动关闭问题解决
·Windows共享不能互访的问题巧解决
·解决WindowsUpdate无法升级问题
·Explorer进程被杀后会被Windows重新加载吗(二)
·XP故障问题解决集锦
·硬盘分区变成RAW格式的解决办法
·双机直连故障现象及处理方法
·解决IE浏览器无法重装的问题
·排除WinXP局域网访问故障
·Windows变慢原因分析及解决方法(上)
·Windows错误代码表查询系统
·共享上网不再愁宽带路由故障解决
·WinXP无法安装DX9的解决方法
·电脑黑屏故障排除实例一则
·WindowsXP任务栏假死的解决方法
·WinInstaller(安装服务)出错的解决方案

    您现在的位置: Linux宝库 >> Windows >> 系统故障 >> 系统故障 >> 文章正文
无法删除文件或文件夹的原因和解决方法
Linux宝库 收集整理  作者:Linux宝库  时间:2007-12-31  收藏本站
来自:http://doc.linuxpk.com/36289.html
联系:linuxmine#gmail.com
分类:[系统故障]
  概要

  您可能无法删除 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 开关的解释

  原因 4:文件位于比最大路径 (MAX_PATH) 字符数更深的路径中

  如果文件路径有问题,您可能无法打开文件。

  解决方案 1:使用自动生成的 8.3 名称访问该文件

  要解决此问题,您可能需要使用自动生成的 8.3 名称访问该文件。如果路径深的原因是文件夹名称太长,则这可能是最简便的解决方案。如果 8.3 路径也太长,或者如果 8.3 名称已在该卷上被禁用,则请转到解决方案 2。

  有关在 NTFS 卷上禁用 8.3 文件名的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:

  121007 如何在 NTFS 分区上禁用 8.3 格式名称的创建

  解决方案 2:重命名或移动路径深的文件夹

  要解决此问题,请重命名文件夹,以使目标文件的路径深度不超过 MAX_PATH。如要这样做,请从根文件夹(或任何其他方便的位置)开始,然后重命名文件夹,缩短它们的名称。如果此步骤不能解决此问题(例如,如果文件的深度超过 128 个文件夹),请转到解决方案

  解决方案 3:使用一个与文件夹具有相同深度的网络共享

  如果解决方案 1 或解决方案 2 不太方便,或者不能解决问题,请创建一个网络共享,使其位于文件夹树中尽可能深的位置,然后通过访问此共享来重命名文件夹。

  解决方案 4:使用能够遍历深路径的工具

  许多 Windows 程序都假定最大路径长度少于 255 个字符;因此,这些程序只分配了足够容纳这些典型路径的内部存储。而 NTFS 则没有这一限制,它可以容纳更长的路径。

  如果您在文件夹结构中一个已经相当深的位置创建一个共享,然后通过使用此共享在此位置之下创建一个深层结构,则可能会遇到此问题。某些在文件夹树上进行本地操作的工具可能无法遍历从根文件夹开始的整个文件夹树。您可能需要以特殊方式使用这些工具,以便它们能够遍历该共享位置。(CreateFile API 文档说明了一种在此情形下遍历整个文件夹树的方法。)

  一般情况下,您可以通过使用创建文件的软件来管理这些文件。如果有一个程序,它可以创建超过 MAX_PATH 的文件,则一般情况下您可以使用此同一程序来删除或管理这些文件。您通常可以通过使用共享来删除在此同一共享上创建的文件。

  原因 5:文件名包括 Win32 命名空间中的一个保留名称

  如果文件名中包括 Win32 命名空间中的一个保留名称(例如“lpt1”),则可能无法删除此文件。要解决此问题,请使用非 Win32 程序重命名该文件。您可以使用 POSIX 工具或任何其他使用适当内部语法的工具来使用此文件。

  另外,如果您使用特定的语法指定到该文件的路径,则可能能够使用一些内置的命令绕过典型的 Win32 保留名称检查。例如,如果在 Windows XP 中使用 del 命令,则在使用以下特殊语法指定到该文件的完整路径的情况下,可以删除名为“lpt1”的文件:

  del \\?\c:\文件路径\lpt1

  有关在 Windows NT 和 Windows 2000 下删除具有保留名称的文件的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:

  120716 如何在 Windows 中删除具有保留名称的文件

  有关在 Windows XP 下删除带有保留名称的文件的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:

  315226 如何在 Windows XP 中删除具有保留名称的文件

  如果使用典型的 Win32 CreateFile 机制打开到某个文件的句柄,则某些文件名称是为旧式 DOS 设备保留的。为了向后兼容,不允许使用这些文件名,也不能使用典型的 Win32 文件调用来创建它们。不过,此问题并不是 NTFS 的一种限制。

  通过使用遍历超过 MAX_PATH 的文件夹时所用的那种技巧,您可能能够使用 Win32 程序绕过在创建(或删除)文件时执行的典型名称检查。另外,有些 POSIX 工具不需接受这些名称检查。

  原因 6:文件名包括 Win32 命名空间中的无效名称

  如果文件名中包括一个无效名称,您可能无法删除该文件(例如,文件名有一个尾随空格,或一个尾随句点,或者文件名仅由一个空格组成)。要解决此问题,请用一种使用适当内部语法的工具删除此文件。您可以将“\\?\”语法用于某些工具,以便对这些文件进行操作,例如:

  del "\\?\c:\包含尾随空格文件的路径.txt "

  导致此问题的原因与原因 5 类似。然而,如果使用典型的 Win32 语法打开名称中有尾随空格或尾随句点的文件,则尾随空格或句点在打开实际文件之前会被去掉。因此,如果在同一个文件夹中有两个分别名为“AFile.txt”和“AFile.txt ”的文件(注意文件名后面的空格),如果您尝试使用标准 Win32 调用打开第二个文件,实际上会打开第一个文件。同样,如果文件的名称仅是“ ”(一个空格字符),当尝试使用标准 Win32 调用打开它时,实际上会打开该文件的父文件夹。在此情况下,如果您尝试更改这些文件上的安全设置,您可能要么做不到,要么会意外更改其他文件上的设置。如果发生此行为,您可能会认为您对一个实际上具有限制性 ACL 的文件拥有操作权限。

  多种原因

  在某些情况下,您可能会遇到上述各种原因的不同组合,这会使删除文件的过程更复杂。例如,如果您作为计算机管理员登录,可能会同时遇到原因 1(您无权删除文件)和原因 6(文件名包含一个尾随字符,导致文件访问重定向到其他文件或者不存在的文件),您可能无法删除该文件。如果您尝试通过取得文件的所有权和添加权限来解决原因 1 的问题,可能仍然无法删除该文件,因为用户界面中的 ACL 编辑器由于原因 6 而无法访问到正确的文件。

  在此情形中,您可以使用 Subinacl 实用工具和 /onlyfile 开关(此实用工具包括在资源工具包中)来更改文件的所有权和操作权限(若不更改则无法访问),例如:

  subinacl /onlyfile "\\?\c:\有问题文件的路径" /setowner=域\管理员 /grant=域\管理员=F

  注意:此命令要在一行中输入;为便于阅读已换行。

  此示例命令行修改了包含尾随空格的 C:\有问题文件的路径文件

  本文来自:http://doc.linuxpk.com/36289.html
发表您的高见!

·上一篇:
在Windows2000或XP中用控制台解决PC故障
·下一篇:计算机IIS访问出错的解决方法一则
 
     最新更新
·有关VPN连接的15项故障诊断提示
·分机引起的ADSL上网故障
·解决无盘站反复重启问题
·不能绑定“旧”IP故障的解决
·网速变慢的故障分析
·Windows2000/NT/XP管理员密码丢失解决方法
·Windows错误代码表查询系统
·修复磁盘的秘方--降低故障停机时间
·局域网类故障简要分析
·故障分析:巧解“非法操作”
·解决局域网中各种“慢”的问题
·Windows系统故障有问必答(菜鸟篇)
·IE浏览器八大经典故障写真集
·禁止运行组策略的解决方法
·妙用GHOST删除分区和修复硬盘坏扇区
·硬盘"零磁道"、"分区表"的修复
·网卡“硬”故障的解决
·奇怪的拨号故障
·ADSLModem使用故障解析
·用Win2000安装盘修复系统两例
·排除WinXP局域网访问故障
·用万用表检测局域网故障
·局域网故障排除经验谈
·局域网文件拷备速度奇慢问题解决三例
·ZIP文件修复好帮手
·XP故障问题解决集锦
·ADSLMODEM过热故障解读一例
·ADSL线路维护故障分析
·轻轻松松反客为主-ADSL疑难问题解决
·离奇ADSL故障一例