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))
如果两者相同,很可能就是你要找的文件夹。
但同样,首先质疑为什么需要这条路径的动机可能是个好主意。
我使用下面的代码获取用户的 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))
如果两者相同,很可能就是你要找的文件夹。
但同样,首先质疑为什么需要这条路径的动机可能是个好主意。