Asp.net相對路徑與絕對路徑

來源:互聯網
上載者:User

好多人對相對路徑與絕對路徑老是混淆記不清楚,我從整理了一下,希望對大家的認識有協助。

 

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

 

 

1.Request.ApplicationPath->當前應用的目錄

Jsp中, ApplicationPath指的是當前的application(應用程式)的目錄,ASP.NET中也是這個意思。

對應的--例如我的伺服器上有兩個web應用網域名稱都是mockte.com 一個映射到目錄mockte.com/1/ 另一個影射到 http://mockte.com/2/

那麼mockte.com/1/就是第一個應用的ApplicationPath 同理 mockte.com/2/就是第二個應用的ApplicationPath

 

2.Request.FilePath->對應於iis的虛擬目錄

如 URL http://mockte.com/1/index.html/pathinfo

FilePath = /1/index.html

 

3.Request.Path->當前請求的虛擬路徑

Path 是 FilePath 和 PathInfo 尾部的串聯。例如 URL http://mockte.com/1/index.html/pathinfo

那麼Path = /1/index.html/pathinfo

 

4.Request.MapPath(string url)->將url映射為iis上的虛擬目錄

這個目錄都是相對於application的根目錄的

於Server.MapPath相比,不會包含類似c:/這樣的路徑

可以理解為是相對路徑(對比的Server.MapPath就是絕對路徑)  

 

5.Server.MapPath(string url)->將url映射為伺服器上的實體路徑

例如 http://mockte.com/1/index.html 假設你的應用程式在c:/iis/MySite中

那麼就是 c:/iis/MySite/1/index.html

//本地路徑轉換成URL相對路徑

     private string urlconvertor(string imagesurl1)

    {

        string tmpRootDir = Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString());//擷取程式根目錄

        string imagesurl2 = imagesurl1.Replace(tmpRootDir, ""); //轉換成相對路徑

         imagesurl2 = imagesurl2.Replace(@"\", @"/");

        //imagesurl2 = imagesurl2.Replace(@"Aspx_Uc/", @"");

        return imagesurl2;

     }

    //相對路徑轉換成伺服器本地實體路徑

    private string urlconvertorlocal(string imagesurl1)

    {

        string tmpRootDir = Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString());//擷取程式根目錄

        string imagesurl2 = tmpRootDir + imagesurl1.Replace(@"/", @"\"); //轉換成絕對路徑

         return imagesurl2;

     }

1.使用filePath="/Logs/abc.txt",被認為是根目錄,即網頁檔案所在的盤符,預設的是C盤,則在這裡這個路徑被解釋為"C:\Logs\abc.txt"

2.使用filePath="~/Logs/abc.txt",被認為是伺服器的目錄

3.使用filePath="./Logs/abc.txt",仍然是伺服器目錄下 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.