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

问题描述

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

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 

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

解决方法

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

如果你出于某种原因真的想检索这个文件夹,你可能会做一些类似的事情

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

然后要验证,您还可以检索例如

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

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

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

,

这是你要找的吗

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

string userName = Environment.UserName;

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

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...