在C#windows服务中获取appdata \ local文件夹路径
我尝试使用C:\Users\\AppData\Local
文件夹路径
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
在C#Windows服务中,但它返回一些其他路径
C:\Windows\ServiceProfiles\LocalService\AppData\Local
有没有任何想法如何正确地做到这一点?
您是否在用户帐户下运行该服务? 如果没有,服务将使用您自己的个人资料。 如果用户“登录”此服务,则可以将该文件夹传递给服务并绕过本地检查。 否则,尝试在用户帐户下运行服务(或为其创建帐户)。
每个用户的AppData文件夹存储在注册表中。
使用此路径:
const string regKeyFolders = @"HKEY_USERS\\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"; const string regValueAppData = @"AppData";
给定包含用户sid的变量sid字符串,您可以像这样获取其AppData路径:
string path=Registry.GetValue(regKeyFolders.Replace("", sid), regValueAppData, null) as string;