如何在C#中获取Windows\system32\config\systemprofile\AppData\Local\文件夹路径?

3
什么是以编程方式获取此文件夹路径的最佳方法:Windows\system32\config\systemprofile\AppData\Local

%systemroot% 可以让你进入 Windows 文件夹...但根据我的研究(刚刚完成),就像我们使用 %appdata% 一样,没有直接的快捷方式。 - Rohan Büchner
5
我认为这是SYSTEM账户的AppData路径。因此,如果你正在作为SYSTEM账户运行,你应该能够使用Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) - 尽管我没有测试过。如果你不是作为SYSTEM账户运行,你可能没有必要去那里。 - Joe
4个回答

0

示例代码

HttpContext.Current.Server.MapPath();
System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;

-1

抱歉,我不能写评论。你用这个路径做什么?应用程序存储在哪里?这样可以帮助你到达目的地吗?

string path = "C:\\Windows\system32\config\systemprofile\AppData\Local";

如果 C: 是驱动器的名称。

你真的需要更详细地阐述你的问题。

这是一个重复的问题吗??

如何在不定义路径的情况下读取现有文本文件


4
我认为你误解了"programmatically"这个词的含义。 - Soner Gönül
是的,我可以,但我认为在代码清晰方面,获取这个特殊文件夹路径可能是一个解决方案。 - Andrei Karcheuski
1
@SonerGönül 不,我不这么认为。这是程序化的。我认为OP正在寻找的可能更接近Rohan上面所说的。这取决于OP如何访问它。如果他的应用程序在那里,它就是System.IO.Path.Combine(appPath, etc.); 如果他直接从其他地方安装的程序中访问它,他将不得不添加更多路径。OP如何访问它。这就是问题所在。就像我说的。我不能发表评论,所以我想现在由@downvoters来决定。只是想帮忙。 - user4291562
1
@AndreiKarcheuski,你能否在你的问题中添加更多细节?请参阅我对Soner的上面的回复。 - user4291562
1
@FrankPytel 我正在处理C#应用程序的登录问题,我有一个任务需要将日志文件存储在该文件夹中。因此,我正在寻找如何以编程方式获取该文件夹路径,因为该应用程序可以安装在不同的操作系统上。 - Andrei Karcheuski

-1

我认为你可以使用Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData

在我的项目中,就像这样: string configPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MyProject", "SERVICER", "config.ini");

它获取所有用户的应用程序数据目录(包括系统、服务、访客等)。我用它来保存服务的配置!


错误。在我的系统上,“CommonApplicationData”返回“C:\ProgramData”。 - Anton Shepelev
很抱歉一开始没有理解您的意图,以下是我认为您可以使用的代码:Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.SystemX86), "config", "systemprofile", "AppData", "Local"); - Henry Trần
1
Environment.GetFolderPath(Environment.SpecialFolder.SystemX86) 将自动地根据可执行计算机返回 system32syswow64 的结果。 - Henry Trần
1
遗憾的是,简单的方法只适用于dotnet 4或更高版本。如果您仍然想实现目标,可以参考以下内容,据我所知,它将在大多数Windows系统上运行,但我还没有机会在低端计算机上测试它们! [https://gist.github.com/DK189/11399b58985a1023f01d50118c23014a](源代码) - Henry Trần
如果在x64环境下运行x86应用程序,它总是返回Windows\system32,而在x64环境下,systemprofile仅存在于SysWOW64文件夹中! - Henry Trần
显示剩余7条评论

-2

你可以通过以下方式获取路径:

Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData)

错误。在从Windows服务调用时,LocalApplicationData 在我的系统上返回 C:\Users\anton\AppData\Local - Anton Shepelev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接