前言 通過後臺,想刪除C盤下”C:\\Windows\\winsxs\\Backup“的緩存文件。 然後提示對路徑“C:\\Windows\\winsxs\\Backup\\amd64_hid-user.resources_31bf3856ad364e35_10.0.17134.1_zh-cn_aa ...
前言
通過後臺,想刪除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 //1.如果是只讀,則取消只讀 2 if ((fileInfo.Attributes & FileAttributes.ReadOnly) > 0) 3 fileInfo.Attributes ^= FileAttributes.ReadOnly;