我在C:\Users\myusername\AppData\Roaming\myapp\file.html
中有一个HTML文件。我通过C#应用程序中的Web浏览器访问该文件,以便在应用程序中预览它
但是,当应用程序被放到另一台计算机上时,webBrowser1中的地址仍然特定于我的用户名,因此其他人无法访问预览。
有没有办法在我的网络浏览器中将文件作为网址转到,而网址中没有硬编码的用户名?
我尝试过:
谢谢!
以下是我获得帮助后使用的代码:
string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string address = Path.Combine(folderPath + @"\myapp\file.html");
webBrowser1.Navigate(address);
答案 0 :(得分:7)
如果您想获取当前登录用户的名称,您必须阅读Environment.UserName
属性。
此外,如果您需要访问漫游用户的AppData
目录,您可以获得文件夹路径而无需对任何内容进行硬编码(不要忘记每个Windows上的用户目录并不总是c:\users
AppData
的版本和路径也可能有所不同):
string folderPath = Environment.GetFolderPath(
Environment.SpecialFolder.ApplicationData);
在您的情况下,只需附加文件名:
string url = Path.Combine(folderPath, "file.htm");
备注强>
如果出于任何原因需要使用环境变量,那么首先要扩展它们:
string path = Environment.ExpandEnvironmentVariables(@"C:\Users\%USERNAME%\");
答案 1 :(得分:1)
看看这个功能。它返回当前用户的应用程序数据文件夹的路径。
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)