“访问被拒绝”导致文件无法删除的原因

我们有时即使是最简单的删除文件也可能遇到麻烦,要么系统提示“文件正在被另一个人或程序使用”,要么就是报告“访问被拒绝”或“磁盘写保护”等等,还有无法删除文件原因。下面我们就来看看“磁盘写保护”或“访问被拒绝”引起的无法删除文件原因有哪些。
原因一:文件正在使用中
在删除文件时,经常会遇到的一个问题是,文件正在使用,无法删除。如果试图删除以独占访问而不是以共享访问方式打开,并且正在使用中的文件时,操作系统就会出现错误提示:“无法删除xxx:文件正在被另一个人或程序使用”。而另一种情况则是,能够使用删除命令删除文件,但在打开文件的进程释放该文件之前,文件实际上并未删除。
解决方法:需要确定拥有文件打开句柄的进程,然后关闭此进程。在以前的Windows中,我们可以使用资源工具包的Oh.exe。但在XP中,安装好的Support Tools却不带Oh.exe。不过,XP提供了一个新的Openfiles.exe命令行工具,它能够报告进程打开的各个文件。与Oh.exe相似,Openfiles.exe也要求打开系统内核监视,这会消耗一些内存,并降低系统操作的性能。打开系统监视的命令是“Openfiles /localon”,它会启用系统全局标志“维护对象列表”,需重新启动系统才能生效。重新启动系统后,在命令提示符下执行不带参数的“Openfiles”,即可看到各个进程打开文件的清单。
原因二:无效的文件名称
如果文件名中包括一个无效名称,例如文件名有一个尾随空格,或一个尾随句点,或者文件名仅由一个空格组成,同样可能无法删除该文件。值得一提的是,如果使用典型的Win32语法打开名称中有尾随空格或尾随句点的文件,则尾随空格或句点在打开实际文件之前会被去掉。因此,如果在同一个文件夹中有两个分别名为“File.txt”和“File.txt ”的文件,当使用标准Win32调用打开第二个文件时,实际上会打开第一个文件。同样,如果文件的名称仅是“ ”,当尝试使用标准Win32调用打开它时,实际上会打开该文件的父文件夹。在此情况下,如果尝试更改这些文件上的安全设置,就有可能会意外更改其他文件上的设置。
解决方法:可以使用一种适当的内部语法删除此文件。例如要删除包含尾随空格的文件,可以使用如下命令: Del  c:文件路径(尾随空格的文件名)
原因三:文件系统损坏
磁盘上的坏区、其他硬件故障或者软件错误都可能会损坏文件系统,使文件出现问题而无法删除。典型操作失败的方式可能各不相同,当检测到文件系统损坏时,通常会收到一条提示运行Chkdsk的信息。
解决方法:可以在磁盘卷上运行Chkdsk实用工具以纠正任何存在的错误。根据损坏的性质,Chkdsk也许能够恢复文件数据,也许无法恢复,但Chkdsk可以使文件系统返回到一种在内部一致的状态。有关Chkdsk实用工具的命令及参数,可以在命令提示符下执行“Chkdsk/?”查阅。
原因四:文件使用了存取控制列表
如果某个文件使用了存取控制列表(Access Control List,简称ACL),而操作者又没有相应的权限,那么删除文件时就可能出现“访问被拒绝”的提示。
通常情况下,管理员具有取得任何文件所有权的隐含能力,文件所有者也具有修改文件权限的隐含能力。不过,这些默认的权限是可以被修改的。
解决方法:要解决因ACL导致文件无法删除的问题,就必须以具有相应权限的用户身份登录,或者是赋予自己删除文件的权限,然后才能删除文件。要注意的是,操作者必须拥有这些文件的所有权才能更改权限。如果是因为文件使用了不规范的ACL而不能使用某些安全工具显示或修改其权限时,可以尝试使用命令行工具Cacls.exe进行修改。
原因五:文件名使用了一个保留名称
众所周知,像AUX、LPT1这样的名称是为旧式DOS设备保留的。为了向后兼容,在Windows中不允许使用这些文件名,也不能使用典型的Win32文件调用来创建它们。反之,如果文件名是Win32命名空间中的一个保留名称,则同样可能无法删除此文件。
解决方法:可以在Linux或其他非Windows的操作系统下重命名或删除该文件。另外,如果能够使用特定的语法指定到该文件的路径,也可以使用一些内置的命令绕过典型的Win32保留名称检查。例如,在Windows XP中使用以下命令,可以删除名为“lpt1”的文件(Del命令后面加上“?”来避免Windows检查文件名的合法性): Del c:[/URL]文件路径lpt1
原因六:文件路径太深无法访问
文件位于比最大路径字符数更深的路径中,可能导致文件无法访问,当然,这种情况较为少见。如果路径深的原因是文件夹名称太长,最简便的解决方案是使用自动生成的8.3名称访问该文件。如果8.3路径也太长,可以从根文件夹开始重命名文件夹,缩短它们的名称,以使目标文件的路径深度不超过MAX_PATH。若是文件的深度超过128个文件夹,可以通过创建一个网络共享,使其位于文件夹树中尽可能深的位置,然后通过访问此共享来访问文件。
解决方法:如果遇到因文件路径太深无法访问的情况,可以通过使用创建文件的软件来管理这些文件。也就是说,如果有一个程序,它可以创建超过MAX_PATH的文件,则我们也可以使用该程序来管理这些文件。此外,对于通过网络共享创建的深层次结构的文件也可以通过使用同一共享来进行删除。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在命令提示符中,可以使用 "del" 命令来删除文件。但是,有时当你尝试删除一个拒绝访问文件时,系统会提示你无权访问拒绝访问。为了强制删除这些文件,你可以按照以下步骤操作: 1. 首先,打开命令提示符。在开始菜单中搜索 "cmd" 并点击打开。 2. 在命令提示符窗口中,使用 "cd" 命令导航到包含被拒绝访问文件的目录。例如,如果文件位于 "D:\Documents" 目录下,你可以使用命令 "cd D:\Documents" 进入该目录。 3. 确定你要删除文件名。你可以使用 "dir" 命令列出当前目录下的所有文件文件夹,然后找到你要删除文件名。 4. 输入 "del /f 文件名" 命令来强制删除文件。例如,如果要删除名为 "example.txt" 的文件,你可以输入 "del /f example.txt"。 5. 按下回车键执行命令。系统将尝试强制删除文件,即使它被拒绝访问。 需要注意的是,强制删除文件可能会导致数据丢失或损坏,因此请确保你删除的是正确的文件。此外,使用这个方法删除系统文件可能会导致系统不稳定,因此在操作之前请谨慎考虑。 ### 回答2: 在cmd中,要强制删除拒绝访问文件,你可以使用以下命令: 1. 首先,打开cmd命令提示符窗口。可以通过按下Win键+R,在弹出的运行对话框中输入"cmd"并按下回车键来打开它。 2. 在命令提示符窗口中,你需要定位到拒绝访问文件所在的目录。你可以使用"cd"命令来导航到目标目录。例如,如果文件位于D盘的Test文件夹中,你可以输入以下命令切换到该目录: cd D:\Test 3. 确定你已经进入到了包含要删除文件的目录后,你可以使用"del"命令来删除文件。但是,由于文件拒绝访问,通常直接执行"del"命令会失败。 4. 为了强制删除文件,你可以使用"takeown"命令来获取文件的所有权。输入以下命令以获取文件所有权: takeown /f 文件名 请将"文件名"替换为要删除文件的名称。例如,如果要删除文件名为"example.txt",则应输入: takeown /f example.txt 5. 接下来,使用"icacls"命令来修改文件权限,以便你能够删除它。输入以下命令: icacls 文件名 /grant 用户名:F 请将"文件名"替换为要删除文件的名称,将"用户名"替换为当前登录用户的用户名。例如,如果要删除文件名为"example.txt",并且当前登录用户的用户名为"User1",则应输入: icacls example.txt /grant User1:F 6. 最后,使用"del"命令来删除文件。输入以下命令: del 文件名 请将"文件名"替换为要删除文件的名称。例如,如果要删除文件名为"example.txt",则应输入: del example.txt 以上步骤将使你能够强制删除拒绝访问文件。请确保谨慎操作,以免误重要文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值