• C#里面获取web和非web项目路径


    非Web程序获取路径几种方法如下:

    1.AppDomain.CurrentDomain.BaseDirectory
     2.Environment.CurrentDirectory
    3.HttpRuntime.BinDirectory The path to the current application's/bin directory;
     
     

    Web程序

    HttpCurrent.Context.Server.Mappath()

    HttpContext.Current返回当前请求的 HttpContext 对象。如此我们就可以直接访问Request、Response、Session、Application等对象,和Page中访问等同。 我们无需再将Page用参数的方式传递到我们的类库对象中。
    HttpRuntime 为当前应用程序提供一组 ASP.NET 运行时服务。我们可以通过这个类获得当前ASP.NET工程的一些信息。 HttpRuntime.AppDomainAppVirtualPath : 项目虚拟路径 HttpRuntime.AppDomainAppPath : 项目物理路径 HttpRuntime.BinDirectory : BIN目录物理路径 HttpRuntime.ClrInstallDirectory : CLR安装路径(可以用来获取CLR版本号)
    输出: AppDomainAppId: /LM/W3SVC/1/Root/Learn.Test.Web AppDomainAppPath: D:SystemMy DocumentsVisual Studio ProjectsLearn.TestLearn.Test.Web AppDomainAppVirtualPath: /Learn.Test.Web AppDomainId: /LM/W3SVC/1/Root/Learn.Test.Web-9-127652564154400560 AspInstallDirectory: C:WINDOWSMicrosoft.NETFrameworkv1.1.4322 BinDirectory: D:SystemMy DocumentsVisual Studio ProjectsLearn.TestLearn.Test.Webin ClrInstallDirectory: c:windowsmicrosoft.netframeworkv1.1.4322 CodegenDir: C:WINDOWSMicrosoft.NETFrameworkv1.1.4322Temporary ASP.NET Fileslearn.test.web416801327c880883 IsOnUNCShare: False MachineConfigurationDirectory: c:windowsmicrosoft.netframeworkv1.1.4322Config
    HostingEnvironment
    灵活运用技巧:
    当使用非WEB程序或使用异步调用时,想要取得根目录下的某目录可以使用如下代码:
    HttpRuntime.BinDirectory + "../目录名";
    获取网站根目录的方法有几种如:
    Server.MapPath(Request.ServerVariables["PATH_INFO"]) Server.MapPath("/") Server.MapPath("") Server.MapPath(".") Server.MapPath("../") Server.MapPath("..")  Page.Request.ApplicationPath 运行结果: C:InetpubwwwrootEnglishClubmanageWebForm1.aspx C:Inetpubwwwroot C:InetpubwwwrootEnglishClubmanage C:InetpubwwwrootEnglishClubmanage C:InetpubwwwrootEnglishClub C:InetpubwwwrootEnglishClub
    以上的方法可以在.aspx中访问,但是如果你在。cs文件就不能用。
    HttpContext.Current.Server.MapPath(); System.Web.HttpContext.Current.Request.PhysicalApplicationPath
    在.cs文件中可以用。
    但是HttpContext.Current.Server.MapPath();这个获取的是文件的路径而不是根目录。
    只有System.Web.HttpContext.Current.Request.PhysicalApplicationPath    这个才是获取的根目录,在写获取数据库路径是应该用这个,其他的都有问题。
    测试过,在有些web项目的cs文件中可以这样用。但是最好是用System.Web.HttpContext.Current.Server.MapPath("/SystemManage/Hotel/LocList.xml");
    在类库项目中,这个通常是不能用的,这个时候需要引用程序集,引用命名空间System.Web;才行。
    System.Environment.CurrentDirectory + @"IPMS.WebaboutMe.txt"
  • 相关阅读:
    CI框架用cookie实现用户自动登录
    php预定义常量
    ubuntu root密码
    jQuery的form中ajaxSubmit参数
    优酷视屏播放去广告链接id_XXX.html内容替换红色
    linux 重启apache:apachectl -k graceful
    python深copy与浅copy的区别
    python3中pathlib库的Path类方法汇总
    unittest使用discover加载不同目录下的case失败,提示Path must be within the project
    自定义HTMLTestRunner报告case名称
  • 原文地址:https://www.cnblogs.com/yj716716yj/p/8651284.html
Copyright © 2020-2023  润新知