C# 在不知道用户名的情况下获取用户特定路径
我在C# 在不知道用户名的情况下获取用户特定路径,c#,url,webbrowser-control,C#,Url,Webbrowser Control,我在C:\Users\myusername\AppData\Roaming\myapp\file.HTML中有一个HTML文件。我正在通过我的C#应用程序中的web浏览器访问该文件,以便从应用程序中预览它。 但是,当应用程序被放到另一台计算机上时,webBrowser1中的地址仍然是我的用户名的专用地址,因此其他人无法访问预览 有没有一种方法可以在我的web浏览器中以URL的形式访问该文件,而不必在URL中使用硬编码的用户名 我所尝试的: C:\Users\%USERNAME%\AppData\
C:\Users\myusername\AppData\Roaming\myapp\file.HTML
中有一个HTML文件。我正在通过我的C#应用程序中的web浏览器访问该文件,以便从应用程序中预览它。但是,当应用程序被放到另一台计算机上时,webBrowser1中的地址仍然是我的用户名的专用地址,因此其他人无法访问预览 有没有一种方法可以在我的web浏览器中以URL的形式访问该文件,而不必在URL中使用硬编码的用户名 我所尝试的:
string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string address = Path.Combine(folderPath + @"\myapp\file.html");
webBrowser1.Navigate(address);
如果要获取当前登录用户的名称,必须阅读
Environment.UserName
属性
此外,如果您需要访问漫游用户的AppData
目录,您可以获得文件夹路径,而无需硬编码任何内容(不要忘记,在每个Windows版本上,用户目录并不总是c:\users
,而AppData
的路径也可能不同):
在您的情况下,只需附加文件名:
string url = Path.Combine(folderPath, "file.htm");
注释如果出于任何原因,需要使用环境变量,则必须首先展开它们:
string path = Environment.ExpandEnvironmentVariables(@"C:\Users\%USERNAME%\");
如果要获取当前登录用户的名称,必须阅读
Environment.UserName
属性
此外,如果您需要访问漫游用户的AppData
目录,您可以获得文件夹路径,而无需硬编码任何内容(不要忘记,在每个Windows版本上,用户目录并不总是c:\users
,而AppData
的路径也可能不同):
在您的情况下,只需附加文件名:
string url = Path.Combine(folderPath, "file.htm");
注释如果出于任何原因,需要使用环境变量,则必须首先展开它们:
string path = Environment.ExpandEnvironmentVariables(@"C:\Users\%USERNAME%\");
看看这个函数。它返回当前用户的应用程序数据文件夹的路径
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
看看这个函数。它返回当前用户的应用程序数据文件夹的路径
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
@Nathan我建议你不要构建路径,路径在XP/Vista上是不同的,它可能是本地化的。最好使用GetFolderPath()获得完全正确的安全路径,这样您运行的操作系统就不重要了。好的,我更新了帖子和应用程序中的代码。我使用的是Windows 7,这是我开发的唯一Windows版本,因此我不知道文件路径会有所不同:D@Nathan我建议您不要构建该路径,该路径在XP/Vista上不同,并且可能已本地化。最好使用GetFolderPath()获得完全正确的安全路径,这样您运行的操作系统就不重要了。好的,我更新了帖子和应用程序中的代码。我使用的是Windows7,这是我开发的唯一一个Windows版本,所以我不知道文件路径会有所不同:D