簡體   English   中英

在C#windows服務中獲取appdata \\ local文件夾路徑

[英]Get appdata\local folder path in C# windows service

我嘗試使用C:\\Users\\<username>\\AppData\\Local文件夾路徑

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

在C#Windows服務中,但它返回一些其他路徑

C:\Windows\ServiceProfiles\LocalService\AppData\Local

有沒有人知道如何正確地做到這一點?

您是否在用戶帳戶下運行該服務? 如果沒有,服務將使用您自己的個人資料。 如果用戶“登錄”此服務,則可以將該文件夾傳遞給服務並繞過本地檢查。 否則,嘗試在用戶帳戶下運行服務(或為其創建帳戶)。

每個用戶的AppData文件夾存儲在注冊表中。

使用此路徑:

const string regKeyFolders = @"HKEY_USERS\<SID>\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders";
const string regValueAppData = @"AppData";

給定包含用戶sid的變量sid字符串,您可以像這樣獲取其AppData路徑:

string path=Registry.GetValue(regKeyFolders.Replace("<SID>", sid), regValueAppData, null) as string;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM