C# 以管理员权限删除文件

摘要:
前言通过后台,想删除C盘下”C:\Windows\winsxs\Backup“的缓存文件。然后提示对路径“C:\Windows\winsxs\Backup\amd64_hid-user.resources_31bf3856ad364e35_10.0.17134.1_zh-cn_aaa986c13b7eadf9.manifest”的访问被拒绝。找到文件,我们可以看到点击右键菜单,会有管理员权限提示图

前言

通过后台,想删除C盘下”C:\Windows\winsxs\Backup“的缓存文件。

然后提示对路径“C:\Windows\winsxs\Backup\amd64_hid-user.resources_31bf3856ad364e35_10.0.17134.1_zh-cn_aaa986c13b7eadf9.manifest”的访问被拒绝

找到文件,我们可以看到

  • 点击右键菜单,会有管理员权限提示图标。
  • 查看属性,发现权限属性中,并没有删除和操作的权限

C# 以管理员权限删除文件第1张C# 以管理员权限删除文件第2张

解决方案

如何删除此项”需要提示管事员权限才能删除的文件“呢?

尝试了很多方法

  • 给文件/文件夹,添加权限控制。通过FileSecurity.AddAccessRule添加文件访问权限FileSystemAccessRule? -- 没有用
  • 去除文件的只读属性。FileInfo.Attributes ^= FileAttributes.ReadOnly -- 没用
  • 通过CMD删除文件/文件夹,开启管理员模式 StartInfo.Verb = "runas" -- 也无法删除

有一种方案,设置当前应用程序以管理员身份运行,即在VS的工程右键添加”应用程序清单文件“。

C# 以管理员权限删除文件第3张

添加后,设置以管理员权限运行。

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

C# 以管理员权限删除文件第4张

注:

asInvoker : 应用程序以当前的权限运行。

highestAvailable: 当前用户可以获得的最高权限运行。

requireAdministrator: 以系统管理员权限运行。

添加后,启动程序,会弹出提示。选择第一个选项”管理员身份“,VS会自动重启。之后编译发布成一个exe,就能以管理员身份访问系统文件啦。

附加

System权限

注:获取管理员权限后,可删除一些路径如C:WindowsSoftwareDistributionDownload下的文件。

通过管理员权限可删除一切系统文件?不是的,还有一种权限,System。

比如删除C:WindowsWinSxSBackup下的文件,提示“你需要权限才能执行此操作”,这个暂时没有找到解决方案

C# 以管理员权限删除文件第5张

只读属性

即使当前是管理员权限,也无法删除只读的文件。所以需要取消只读

1     //1.如果是只读,则取消只读
2     if ((fileInfo.Attributes & FileAttributes.ReadOnly) > 0)
3         fileInfo.Attributes ^= FileAttributes.ReadOnly;

关键字:以管理员身份启动程序、清理C盘文件

免责声明:文章转载自《C# 以管理员权限删除文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CSS制作凹环特效如何指定GCC的默认头文件路径下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

使用C#生成应用程序以及读取和写入dbfs时,打开方法error[IM002][Microsoft][ODBC驱动程序管理器]中发生错误。找不到数据源名称,也未指定默认驱动程序。这个程序以前使用得很好。升级和修改后,在测试中发现了问题。为了追踪来源,我曾经是一个32位操作系统。现在我安装了一个win764位操作系统。从控制面板到管理工具再到ODBC驱动程序,...

图论介绍(Graph Theory)

G-v具有比G更多的连通分支,因此v被称为G的截断点G-e具有比G多的连通分支。定理:连通图G,其中e是桥e不属于G的任何环有顶点u,v,使得任何路径u-v都通过e连通图G;而w是存储在顶点u,v处的割点,使得任意路径u-v通过w定义:顶点之间的距离x-y:所有x-y路径的最小长度。...

element-ui表格el-table回显时默认全选数据

1、html代码˂el-table-columntype="selection"width="45"...

每个文件之间延迟启动批处理bat方法之一

延迟在文件之间启动批处理的方法之一:。文本→. bat将扩展名更改为.bat或在txt中将其另存为.bat。例如,如果B是包含空格的路径名,请使用引号“”,否则将找不到文件。批处理bat要运行的文件位于同一目录文件夹@echoffstart xiongmaoshu.jpgping127.0.0.1-n 10&gt;批处理bat和文件是否位于同一目录文...

Windows怎么从命令行下载文件

具体步骤如下:1.打开cmd。exeWin+R或git的bush接口。2.启动powershell。2.在命令行中输入startpowershell以启动powershell。3.下载操作。1.在powershell中输入$client=newobjectSystem.Net.WebClient3.2。exe文件,然后输入$client。下载文件('X','...

C#解析Json(多方法解析Json 一)

解决方案:{“id”:“4028d80858053bed0158053ef7a50001”,“sl”:0.0,“sfyfz”:“0”,“zwjyzsbh”:“10000016000018”}1.创建新的winform控制台项目2.创建实体类测试{publicstringid{get;set;}publicstringsl{get;set;}公共字符串...