C# 以管理员权限删除文件
前言
通过后台,想删除C盘下”C:\\Windows\\winsxs\\Backup“的缓存文件。
然后提示对路径“C:\\Windows\\winsxs\\Backup\\amd64_hid-user.resources_31bf3856ad364e35_10.0.17134.1_zh-cn_aaa986c13b7eadf9.manifest”的访问被拒绝。
找到文件,我们可以看到
- 点击右键菜单,会有管理员权限提示图标。
- 查看属性,发现权限属性中,并没有删除和操作的权限
解决方案
如何删除此项”需要提示管事员权限才能删除的文件“呢?
尝试了很多方法
- 给文件/文件夹,添加权限控制。通过FileSecurity.AddAccessRule添加文件访问权限FileSystemAccessRule? -- 没有用
- 去除文件的只读属性。FileInfo.Attributes ^= FileAttributes.ReadOnly -- 没用
- 通过CMD删除文件/文件夹,开启管理员模式 StartInfo.Verb = "runas" -- 也无法删除
有一种方案,设置当前应用程序以管理员身份运行,即在VS的工程右键添加”应用程序清单文件“。
添加后,设置以管理员权限运行。
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
注:
asInvoker : 应用程序以当前的权限运行。
highestAvailable: 当前用户可以获得的最高权限运行。
requireAdministrator: 以系统管理员权限运行。
添加后,启动程序,会弹出提示。选择第一个选项”管理员身份“,VS会自动重启。之后编译发布成一个exe,就能以管理员身份访问系统文件啦。
附加
System权限
注:获取管理员权限后,可删除一些路径如C:\Windows\SoftwareDistribution\Download下的文件。
通过管理员权限可删除一切系统文件?不是的,还有一种权限,System。
比如删除C:\Windows\WinSxS\Backup下的文件,提示“你需要权限才能执行此操作”,这个暂时没有找到解决方案
只读属性
即使当前是管理员权限,也无法删除只读的文件。所以需要取消只读
//1.如果是只读,则取消只读
if ((fileInfo.Attributes & FileAttributes.ReadOnly) > )
fileInfo.Attributes ^= FileAttributes.ReadOnly;
关键字:以管理员身份启动程序、清理C盘文件
C# 以管理员权限删除文件的更多相关文章
- win10 系统怎么获取最高管理员权限删除文件
http://www.xitongcity.com/jiaocheng/win8_content_3473.html 很多win8.1系统用户在对磁盘文件进行清理时,经常会遇到“文件夹访问被拒绝,您需 ...
- Ubuntu创建新用户并增加管理员权限 删除某个用户
sudo adduser xxx 这样的命令会在home目录下添加一个帐号sudo useradd xxx 仅仅是添加用户, 不会在home目录添加帐号 删除:终端方法:以下用newuser代替想要删 ...
- win7,win8取得管理员权限 .reg文件
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\runas] @="获取管理员所有权" " ...
- windows获取管理员权限 操作文件
1.文件右键属性 2.安全tab 一路 “应用”和“确定”
- Win7如何删除需要管理员权限才能删除的文件夹
在Windows 7系统运行中.往往会遇到想要删除某个文件夹时,系统提示:文件夹访问被拒绝 你需要权限来执行此操作,如何才能删除此类文件夹呢? ------------------ --------- ...
- 你需要管理员权限才能删除文件夹及服务器C盘不及批处理
Windows 7系统,管理员权限设置方法 一.选择文件夹或文件所有者 我们用鼠标右键点击要操作的文件或文件夹 - 属性: 在出现的文件夹属性窗口,我们用鼠标左键点击:安全: 我们用鼠标左键点击:高级 ...
- 以管理员身份运行 cmd 删除无权限删除的文件夹
rd 文件夹 PS:删除空文件夹 rd /s 文件夹 PS:删除文件夹,及所有子目录和文件 rd /s/q 文件夹 PS:强制删除文件夹,及所有子目录和文件,不需要提示
- window 10 删除带有管理员权限的Oracle文件夹
因为文件已经被删除就不附图解释了 因为文件安装的方式错误,所以本是按照正常步骤卸载Oracle,前面的禁用Orace服务与删除Oracle注册表都没有出错,但到最后一步---------Oracle文 ...
- win10删除文件夹时需要管理员授权或拒绝访问(无权访问权限修改)
win10 用户:我自己就是电脑主人,凭啥我没有自己电脑文件夹的权限? 微软:对不起,您是电脑硬件的主人,但是电脑系统的主人是我!你只不过是个用户而已. win10 用户:我cao你...[哔-] 对 ...
随机推荐
- IDEA使用Git传放项目
使用Git下载项目到IDEA工具上开发 1. 下载Git 软件工具 https://git-scm.com/ 2. 下载安装 3.打开IDEA 配置Git 4. 搜索Git 在登入 5.选择自己Git ...
- 压力测试工具 ab
ab 是Apache 自带的一个压力测试工具,命令行,是 ApacheBench 命令的缩写. ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问.它的测试目标是基 ...
- Java实验环境的搭建
一.下载并安装JDK 1.官网下载安装 打开浏览器,输入http://www.oracle.com/index.html点击进入下载: 点击—>Downloads—>选择Java(JDK) ...
- Spring框架中<constructor-arg>与<property>理解
配置文件的根元素是beans,每个组件使用bean元素来定义,bean元素可以有许多属性,其中有两个是必须的:id和class.id表示组件的默认名称,class表示组件的类型. 依赖注入的方式: ...
- request.getRequestDispatcher跳转jsp页面失败
我在JS里面写了个Ajax,传值给控制器,然后利用request.getRequestDispatcher(),打算跳转至另外一个页面.但是没有跳转成功,运行之后没反应. 在网上搜了资料发现,利用aj ...
- 【设计经验】5、Verilog对数据进行四舍五入(round)与饱和(saturation)截位
一.软件平台与硬件平台 软件平台: 操作系统:Windows 8.1 64-bit 开发套件:Vivado2015.4.2 Matlab2016a 仿真工具:Vivado自带仿真器 二.引言 在利用 ...
- [Swift]LeetCode236. 二叉树的最近公共祖先 | Lowest Common Ancestor of a Binary Tree
Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. According ...
- [Swift]LeetCode413. 等差数列划分 | Arithmetic Slices
A sequence of number is called arithmetic if it consists of at least three elements and if the diffe ...
- [Swift]LeetCode417. 太平洋大西洋水流问题 | Pacific Atlantic Water Flow
Given an m x n matrix of non-negative integers representing the height of each unit cell in a contin ...
- .NET Core中的验证组件FluentValidation的实战分享
今天有人问我能不能出一篇FluentValidation的教程,刚好今天在实现我们的.NET Core实战项目之CMS的修改密码部分的功能中有用到FluentValidation,所以就以修改用户密码 ...