我正在爲Windows 10設計一個命令行應用程序,它需要替換c:\programdata
文件夾中的某些文件。但是當我使用File.Copy
或File.Move
,它拋出一個異常如:在Windows 10中訪問c: Programdata中的文件時訪問被拒絕
訪問路徑 'C:\ ProgramData \ ***' 被拒絕。
我已將app.manifest
與requireAdministrator
相加,但不起作用。我錯過了什麼嗎?
我正在爲Windows 10設計一個命令行應用程序,它需要替換c:\programdata
文件夾中的某些文件。但是當我使用File.Copy
或File.Move
,它拋出一個異常如:在Windows 10中訪問c: Programdata中的文件時訪問被拒絕
訪問路徑 'C:\ ProgramData \ ***' 被拒絕。
我已將app.manifest
與requireAdministrator
相加,但不起作用。我錯過了什麼嗎?
確保您擁有該文件夾的權限。例如右鍵點擊文件夾>屬性>轉到安全選項卡,並檢查您是否有權限。也可以通過右鍵單擊和「以管理員身份運行」嘗試您的應用程序
嘗試檢查實際運行進程/執行文件的用戶身份。
此用戶應該通過「系統」具有移動/複製磁盤上文件的權限。
在調試模式下,您可以隨時檢查任務管理器=>進程並查看您的進程的用戶名。
它在我的用戶名下運行,而不是系統。是否有可能通過提升權限運行我的應用程序來執行此操作? – user3185333
是的。例如,如果此應用程序將從任務計劃程序運行,則可以指定將運行它的用戶,同樣適用於服務(來自Services.msc)。如果您將從網站運行它,它將從中取得Web應用程序池的用戶身份。 – EfiBN
只需將文件寫入ProgramData,就不需要像本地系統那樣運行! –