如何获取Web服务中的当前目录

时间:2008-10-25 09:39:52

标签: c# web-services

我正在使用System.IO.Directory.GetCurrentDirectory()来获取我的Web服务中的当前目录,但这不会给我当前目录。如何获取Web服务中的当前目录?

由于 斯图尔特

7 个答案:

答案 0 :(得分:46)

在Web服务中,您正在http上下文中运行。所以,

HttpContext.Current.Server.MapPath("~/") 

会给你答案。

答案 1 :(得分:22)

HttpContext.Current.Server.MapPath(".")将为您提供当前的工作目录。

但是对于Rohan West关于可能在HttpContext之外的评论,可能最好只是打电话:

HostingEnvironment.MapPath(".")

查看详情here

答案 2 :(得分:20)

您可以使用

AppDomain.CurrentDomain.BaseDirectory;

这为您提供了应用程序的根目录。

答案 3 :(得分:18)

HttpContext.Current.Server.MapPath(“〜/”)映射回应用程序或虚拟目录的根目录。

HttpContext.Current.Server.MapPath(“〜/”)< - ROOT
HttpContext.Current.Server.MapPath(“。”)< - CURRENT DIRECTORY
HttpContext.Current.Server.MapPath(“..”)< - PARENT DIRECTORY

以上所有都是相对的,所以你可以任意组合来遍历目录树。

答案 4 :(得分:10)

最好的方法是使用

HostingEnvironment.ApplicationPhysicalPath

下的

System.Web.Hosting

有关详细信息,请参阅this link

答案 5 :(得分:6)

HttpContext.Current.Server.MapPath("~/")会让你获得应用程序的根目录吗?

最有可能的是,因为你可能知道那里的路径。

可能感兴趣的另一种选择:

HttpContext.Current.Server.MapPath("/Directory/") 

无论如何,这都是从应用程序的根目录构建的。

如果没有第一个斜杠,则会将您调用的目录作为开头:

HttpContext.Current.Server.MapPath("Directory/") 

答案 6 :(得分:0)

HttpContext.Current.Server.MapPath(“..”)[观察两个(..)点而不是(。)]给出网站虚拟目录的物理目录!