如何从C#中找到所有Windows用户的应用程序数据文件夹路径?
如何为当前用户和其他Windows用户找到此信息?
答案 0 :(得分:12)
Environment.SpecialFolder.ApplicationData
和Environment.SpecialFolder.CommonApplicationData
答案 1 :(得分:10)
这将为您提供“所有用户”应用程序数据文件夹的路径。
string path = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
答案 2 :(得分:7)
改编自@ Derrick的回答。以下代码将为计算机上的每个用户找到Local AppData的路径,并将路径放在字符串列表中。
const string regKeyFolders = @"HKEY_USERS\<SID>\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders";
const string regValueAppData = @"Local AppData";
string[] keys = Registry.Users.GetSubKeyNames();
List<String> paths = new List<String>();
foreach (string sid in keys)
{
string appDataPath = Registry.GetValue(regKeyFolders.Replace("<SID>", sid), regValueAppData, null) as string;
if (appDataPath != null)
{
paths.Add(appDataPath);
}
}
答案 3 :(得分:1)
每个用户的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;