2016-02-02 14:29作者:xiaoxiao
正常情况下,我们选中文件或文件夹按Del键或右键选择删除就可以将它们删掉了,但是有用户在Win7系统中删除文件或文件夹时出错,不然就提示文件夹访问被拒绝,这样的情况是经常会出现的,应该怎么办呢?接下来,小编就告诉大家怎么样才能彻底将这些文件或文件夹删除。
一、常规解决办法:
1、注消或重启电脑,然后再试着删除。
2、进入“安全模式删除”。
3、在纯DOS命令行下使用DEL,DELTREE和RD命令将其删除。
4、如果是文件夹中有比较多的子目录或文件而导致无法删除,可先删除该文件夹中的子目录和文件,再删除文件夹。
5、在任务管理器中结束Explorer.exe进程,然后在命令提示符窗口删除文件。
二、高级解决方案:
这种问题更一般的方法就是更改文件权限,右键文件--属性--安全--编辑。修改文件权限,如果提示无法修改权限,就先修改文件所有者,右键文件--安全--高级--所有者…… 然而当有不止一个这样的文件的时候,这样的操作就不实在了。
三、利用takeown 和cacls解决
takeown 以重新分配文件所有权的方式允许管理员重新获取先前被拒绝访问的文件访问权。
/S system 指定要连接到的远程系统。参数:
/U [domain]user 指定用户上下文,命令在此上下文中执行。
/P [password] 指定给定用户上下文的密码。如果省略,提示输入。
/F filename 指定文件名或目录名模式。可以用通配符 “*” 指定模式。允许共享名文件名。
/A 将所有权给于管理员组,而不是当前用户。
/R 递归: 指示工具运行于指定的目录和子目录里的文件上。
/D prompt 当前用户在一个目录里没有“列出文件夹”权限时,使用默认答案。当在子目录里进行递归 (/R) 操作时会发生这种情况。用有效值 “Y” 获取所有权或用 “N” 跳过。
下面是几个常用的示例
TAKEOWN /F lostfile ::将lostfile所有权给当前用户
TAKEOWN /F directory /R /A ::递归的方式将directory 目录下文件所有权限给管理员组
TAKEOWN /F * ::将当前目录下所有文件所有权给当前用户
TAKEOWN /F %windir%*.txt
cacls 用来显示或者修改文件的访问控制列表。
CACLS filename [/T] [/M] [/L] [/S[:SDDL]] [/E] [/C] [/G user:perm]参数:
[/R user […]] [/P user:perm […]] [/D user […]]
filename 显示 ACL.
/T 更改当前目录及其所有子目录中指定文件的 ACL.
/L 对照目标处理符号链接本身
/M 更改装载到目录的卷的 ACL
/S 显示 DACL 的 SDDL 字符串。
/S:SDDL 使用在 SDDL 字符串中指定的 ACL 替换 ACL.(/E、/G、/R、/P 或 /D 无效)。
/E 编辑 ACL 而不替换。
/C 在出现拒绝访问错误时继续。
/G user:perm 赋予指定用户访问权限。
Perm 可以是: R 读取
W 写入
C 更改(写入)
F 完全控制
/R user 撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。
/P user:perm 替换指定用户的访问权限。
Perm 可以是: N 无
R 读取
W 写入
C 更改(写入)
F 完全控制
/D user 拒绝指定用户的访问。
在命令中可以使用通配符指定多个文件。
也可以在命令中指定多个用户。
缩写:
CI - 容器继承。ACE 会由目录继承。
OI - 对象继承。ACE 会由文件继承。
IO - 只继承。 ACE 不适用于当前文件/目录。
ID - 已继承。 ACE 从父目录的 ACL 继承。
例如:
cacls filename /E /P Administrators:F 将Administrators对filename的访问权限改为完全控制
cacls * /E /C /P Administrators:F 将Administrators对所有文件访问权限改为完全控制
通过这两个命令就可以批量获取文件的所有权,然后正常删除文件了。
以上介绍的就是Win7提示“删除文件或文件夹时出错”或“文件夹访问被拒绝”的解决方案,大家可以根据自己的实际情况来选择用哪种方法解决。