• .net中的路径问题


    1、Server.MapPath("/") 应用程序根目录所在的位置 如 C:Inetpubwwwroot 
    2、Server.MapPath("./") 表示所在页面的当前目录 
    注:等价于Server.MapPath("") 返回 Server.MapPath("") 所在页面的物理文件路径 
    3、Server.MapPath("../")表示上一级目录 
    4、Server.MapPath("~/")表示当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置 如 C:InetpubwwwrootExample

    Response.Write(Request.PhysicalApplicationPath.ToString());
    Response.Write(Server.MapPath("mydb.mdb").ToString());

    经过实验,我发现:Request.PhysicalApplicationPath.ToString()是你的网站所在的目录 ,比如我的就是F:fqhtdocs,而这个地址不管你的网页在哪个子文件夹里,都是一样的。

    Server.MapPath("mydb.mdb").ToString() 是你的网页所在的文件夹再加上参数字符串,而不管这个参数字符串是什么,存在不存在 比如我在qiye子文件夹里放了一个1/aspx文件,其中有这样一句:Response.Write(Server.MapPath("mydb.mdb").ToString());试验出来的值是:F:fqhtdocsqiyemydb.mdb

    另外,Server.MapPath("mydb.mdb").的参数的首部最好不要含有“/”,l因为这意味着根。Response.Write(Server.MapPath("/mydb.mdb").ToString());试验出来的值是:c:/www_root

    ASP.NET中Server.MapPath() 和 Request.MapPath()
    ASP.NET中Server.MapPath() 和 Request.MapPath()使用区别:

    Server.MapPath(string)   :是将相对于当前调用文件的文件(或目录)映射为物理路径;
    Request.MapPath(string) :是将string虚拟路径映射为物理路径(asp中Request无此方法)

    Server.MapPath(string) 中string 可以用“../”方式引用父目录,甚至可以将此目录跳到整个WEB目录外,如:C:WWWROOT
    目录为WEB根目录,在根目录文件中调用此Server.MapPath("../xyz.gif"),则可以调用WEB目录外的脚本、资源等。

    Request.MapPath(string) 中的string为虚拟目录,只能相对WEB虚拟目录形式的,也不允许"../"方式调用,只能是"/","/xx"等字符串

    有时候直接用Server.MapPath(string) 调用一个文件比较麻烦,
    因为不同的目录中调用同一个Server.MapPath(string) 函数就会得到不同的值(我今天就在这里灾了,最好看到octverve文章,明白)
    特殊的话,就需要通过判断本身目录层次才能获取正确的地址,使用的Request.MapPath(string)就可以调用同一个目录文件。不用做目录判断 
     
     
    1、Server.MapPath("/") 应用程序根目录所在的位置 如 C:Inetpubwwwroot 
    2、Server.MapPath("./") 表示所在页面的当前目录 
    注:等价于Server.MapPath("") 返回 Server.MapPath("") 所在页面的物理文件路径 
    3、Server.MapPath("../")表示上一级目录 
    4、Server.MapPath("~/")表示当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置 如 C:InetpubwwwrootExample

    Response.Write(Request.PhysicalApplicationPath.ToString());
    Response.Write(Server.MapPath("mydb.mdb").ToString());

    经过实验,我发现:Request.PhysicalApplicationPath.ToString()是你的网站所在的目录 ,比如我的就是F:fqhtdocs,而这个地址不管你的网页在哪个子文件夹里,都是一样的。

    Server.MapPath("mydb.mdb").ToString() 是你的网页所在的文件夹再加上参数字符串,而不管这个参数字符串是什么,存在不存在 比如我在qiye子文件夹里放了一个1/aspx文件,其中有这样一句:Response.Write(Server.MapPath("mydb.mdb").ToString());试验出来的值是:F:fqhtdocsqiyemydb.mdb

    另外,Server.MapPath("mydb.mdb").的参数的首部最好不要含有“/”,l因为这意味着根。Response.Write(Server.MapPath("/mydb.mdb").ToString());试验出来的值是:c:/www_root

    ASP.NET中Server.MapPath() 和 Request.MapPath()
    ASP.NET中Server.MapPath() 和 Request.MapPath()使用区别:

    Server.MapPath(string)   :是将相对于当前调用文件的文件(或目录)映射为物理路径;
    Request.MapPath(string) :是将string虚拟路径映射为物理路径(asp中Request无此方法)

    Server.MapPath(string) 中string 可以用“../”方式引用父目录,甚至可以将此目录跳到整个WEB目录外,如:C:WWWROOT
    目录为WEB根目录,在根目录文件中调用此Server.MapPath("../xyz.gif"),则可以调用WEB目录外的脚本、资源等。

    Request.MapPath(string) 中的string为虚拟目录,只能相对WEB虚拟目录形式的,也不允许"../"方式调用,只能是"/","/xx"等字符串

    有时候直接用Server.MapPath(string) 调用一个文件比较麻烦,
    因为不同的目录中调用同一个Server.MapPath(string) 函数就会得到不同的值(我今天就在这里灾了,最好看到octverve文章,明白)
    特殊的话,就需要通过判断本身目录层次才能获取正确的地址,使用的Request.MapPath(string)就可以调用同一个目录文件。不用做目录判断 
     

  • 相关阅读:
    [GDKOI2010] 圈地计划(网络流)
    jzoj3454 表白(love)解题报告(01分数规划+DP)
    数论之卢卡斯定理
    POJ1180 Batch Scheduling 解题报告(斜率优化)
    BZOJ 球形空间产生器 解题报告(高斯消元)
    你是怎么封装一个view的
    沙盒目录结构是怎样的?各自用于那些场景?
    这个写法会出什么问题: @property (copy) NSMutableArray *array;
    怎么用 copy 关键字?
    @property后面可以有哪些修饰符?
  • 原文地址:https://www.cnblogs.com/YoungPop-Chen/p/3312924.html
Copyright © 2020-2023  润新知