如何使用相对路径在c#中获取图像文件?

时间:2012-01-20 19:33:15

标签: c#

我已经检查了这个帖子How to get files in a relative path in C#,该目录在IDE中,这对我来说不正确。我有一个网站应用程序,需要从同一级文件夹img获取图像文件。我可以使用以下代码来获取它们:

DirectoryInfo path=new DirectoryInfo(@"c:\WebsiteSolution\wwwroot\Chat\img");
FileInfo[] images = path.GetFiles("*");

但是我想用.\img之类的东西替换第一行代码中的参数,这可能吗?

3 个答案:

答案 0 :(得分:6)

调用Server.MapPath实用程序以获取相对路径。

DirectoryInfo path = Server.MapPath("~\Chat\img");

答案 1 :(得分:0)

对于ASP.Net,请使用MapPath - http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath.aspx

此外,如果您只需要构建路径来渲染页面,只需/Chat/img/My.gif即可。

答案 2 :(得分:-1)

你需要找到一个锚点 - 比如Application.ExecutablePath - 然后使用Path.Combine()的锚点来到你的图像目录。

如果您的Application.ExecutablePath为:@"c:\WebSiteSolution\wwwroot\chat\code",那么您可以使用string imgPath = Path.Combine(Application.ExecutablePath, @"..\img");

如果你很难找到一个好锚,那就有一堆需要考虑。您可以通过Assembly.GetExecutingAssembly().Location

获取正在执行的程序集的路径