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

use*_*149 32 c# web-services

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

谢谢斯图尔特

dri*_*iis 46

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

HttpContext.Current.Server.MapPath("~/") 
Run Code Online (Sandbox Code Playgroud)

会给你答案.

  • 这映射到根.哪*可能不是最新的 (9认同)

fel*_*ckz 22

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

但是对于Rohan West关于可能存在于HttpContext之外的评论,最好只调用:

HostingEnvironment.MapPath(".")
Run Code Online (Sandbox Code Playgroud)

详情请见此处


小智 21

您可以使用

AppDomain.CurrentDomain.BaseDirectory;
Run Code Online (Sandbox Code Playgroud)

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


Mil*_*eat 19

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

HttpContext.Current.Server.MapPath("〜/")< - ROOT
HttpContext.Current.Server.MapPath(".")< - CURRENT DIRECTORY
HttpContext.Current.Server.MapPath("..")< -家长目录

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


Dam*_*ith 10

最好的方法是使用

HostingEnvironment.ApplicationPhysicalPathSystem.Web.Hosting

有关更多信息,请参阅此链接


dov*_*ove 7

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

这很可能是因为你可能知道那里的路径.

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

HttpContext.Current.Server.MapPath("/Directory/") 
Run Code Online (Sandbox Code Playgroud)

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

没有第一个斜杠,这将从您调用的目录作为开始:

HttpContext.Current.Server.MapPath("Directory/") 
Run Code Online (Sandbox Code Playgroud)