C# 如何获取用户 AppData 文件夹,而不是 AppData\Roaming?

C# How to get the User AppData folder, NOT AppData\Roaming?

我使用下面的代码获取用户的 AppData 文件夹 -

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 

但是我得到的是"C:\Users\(users)\AppData\Roaming"。有没有办法只得到 "C:\Users\(users)\AppData"?

这是你要找的吗

首先从环境对象中获取用户名。

string userName = Environment.UserName;

然后,使用该用户名生成路径。

string path = $"C:\Users\{userName}\AppData";

首先,直接访问该文件夹可能不是一个好主意,除非 Microsoft 已发布 API 来检索其位置。这意味着无法保证此文件夹会存在。

如果您出于某种原因确实想要检索此文件夹,您可以按照

Directory.GetParent(
    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData))

然后为了验证,你也可以检索例如

Directory.GetParent(
    Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData))

如果两者相同,很可能就是你要找的文件夹。

但同样,首先质疑为什么需要这条路径的动机可能是个好主意。