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你...[哔-] 对 ...
随机推荐
- [LeetCode] Leaf-Similar Trees 叶结点相似的树
Consider all the leaves of a binary tree. From left to right order, the values of those leaves form ...
- Win10上安装Python3.7-64bit
参考https://docs.opencv.org/4.1.0/d5/de5/tutorial_py_setup_in_windows.html 方法一:到官网上https://www.python. ...
- 算法与数据结构(二) 栈与队列的线性和链式表示(Swift版)
数据结构中的栈与队列还是经常使用的,栈与队列其实就是线性表的一种应用.因为线性队列分为顺序存储和链式存储,所以栈可以分为链栈和顺序栈,队列也可分为顺序队列和链队列.本篇博客其实就是<数据结构之线 ...
- [AI开发]Python+Tensorflow打造自己的计算机视觉API服务
"与其停留在概念理论层面,不如动手去实现一个简单demo ." ——鲁迅 没有源码都是耍流氓github 前言 目前提供AI开发相关API接口的公司有很多,国外如微软. ...
- [Swift]LeetCode148. 排序链表 | Sort List
Sort a linked list in O(n log n) time using constant space complexity. Example 1: Input: 4->2-> ...
- [Swift]LeetCode327. 区间和的个数 | Count of Range Sum
Given an integer array nums, return the number of range sums that lie in [lower, upper] inclusive.Ra ...
- [Swift]LeetCode485. 最大连续1的个数 | Max Consecutive Ones
Given a binary array, find the maximum number of consecutive 1s in this array. Example 1: Input: [1, ...
- java.net.SocketException: 权限不够
java.net.SocketException: 权限不够 一切问题的根源都是缺乏常识 0.0.....背景:今天部署一个spring cloud服务,tanainaide 服务的端口为80,然后 ...
- 《深入理解Java虚拟机》-----第2章 Java内存区域与内存溢出异常
2.1 概述 对于从事C.C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的皇帝又是执行最基础工作的劳动人民——拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任 ...
- 华为oj之等差数列前n项和
题目: 等差数列 热度指数:1010 时间限制:1秒 空间限制:32768K 题目描述 功能: 对于等差数列 2,5,8,11,14- 输入: 正整数N >0 输出: 求等差数列前N项和 返回: ...