c#获取程序根目录方法

取得控制台应用程序的根目录方法
1:Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径(注:最后一个字符没有“\”,需要自己添加)
2:AppDomain.CurrentDomain.BaseDirectory 获取基目录,它由程序集冲突解决程序用来探测程序集
3:System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase(注:最后一个字符有“\”)

 
取得WinForm应用程序的根目录方法
1:Environment.CurrentDirectory.ToString();//获取或设置当前工作目录的完全限定路径
2:Application.StartupPath.ToString();//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称
3:Directory.GetCurrentDirectory();//获取应用程序的当前工作目录
4:AppDomain.CurrentDomain.BaseDirectory;//获取基目录,它由程序集冲突解决程序用来探测程序集
5:AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//获取或设置包含该应用程序的目录的名称
 
取得web应用程序的根目录方法
1.HttpContext.Current.Server.MapPath("~/configs/ChannelUsers.xml")
HttpContext.Current返回当前请求的 HttpContext 对象。如此我们就可以直接访问Request、Response、Session、Application等对象,和Page中访问等同。

获取网站根目录的方法有几种如:
Server.MapPath(Request.ServerVariables["PATH_INFO"])
Server.MapPath("/")
Server.MapPath("")
Server.MapPath(".")
Server.MapPath("../")
Server.MapPath("..") 
Page.Request.ApplicationPath
以上的方法可以在.aspx中访问,但是如果你在winform文件就不能用。
HttpContext.Current.Server.MapPath();
System.Web.HttpContext.Current.Request.PhysicalApplicationPath在.cs文件中可以用。
但是HttpContext.Current.Server.MapPath();这个获取的是文件的路径而不是根目录。
只有System.Web.HttpContext.Current.Request.PhysicalApplicationPath    这个才是获取的根目录,在写获取数据库路径是应该用这个。

猜你喜欢

转载自blog.csdn.net/dqcoffee/article/details/77126695