前言
通过后台,想删除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,就能以管理员身份访问系统文件啦。