我正在使用System.IO.Directory.GetCurrentDirectory()来获取我的Web服务中的当前目录,但这不会给我当前目录.如何获取Web服务中的当前目录?
谢谢斯图尔特
在Web服务中,您正在http上下文中运行.所以,
HttpContext.Current.Server.MapPath("~/")
会给你答案.
HttpContext.Current.Server.MapPath(".")
将为您提供当前的工作目录.
但是对于Rohan West关于可能存在于HttpContext之外的评论,最好只调用:
HostingEnvironment.MapPath(".")
详情请见此处
您可以使用
AppDomain.CurrentDomain.BaseDirectory;
这为您提供了应用程序的根目录.
HttpContext.Current.Server.MapPath("〜/")映射回应用程序或虚拟目录的根目录.
HttpContext.Current.Server.MapPath("〜/")< - ROOT
HttpContext.Current.Server.MapPath(".")< - CURRENT DIRECTORY
HttpContext.Current.Server.MapPath("..")< -家长目录
以上所有都是相对的,所以你可以任意组合来遍历目录树.
最好的方法是使用
HostingEnvironment.ApplicationPhysicalPath
下 System.Web.Hosting
有关更多信息,请参阅此链接
HttpContext.Current.Server.MapPath("~/")
会得到应用程序的根目录吗?
这很可能是因为你可能知道那里的路径.
另一个可能感兴趣的选择:
HttpContext.Current.Server.MapPath("/Directory/")
无论如何,这都是从应用程序的根目录构建的.
没有第一个斜杠,这将从您调用的目录作为开始:
HttpContext.Current.Server.MapPath("Directory/")