1. 程式人生 > >ASP.NET 訪問專案網站以外的目錄檔案

ASP.NET 訪問專案網站以外的目錄檔案

簡單的說,可以通過在 IIS 新增虛擬目錄的方法做到,獲取訪問路徑的時候就用 HttpContext.Current.Server.MapPath("~/xxx"); 的方式。


下面詳細講一下具體怎麼做……

首先看 IIS 上部署的專案網站結構:

這裡寫圖片描述

有兩個專案網站,NewsAPIFileAPI,現在想在 FileAPI 下訪問 NewsAPI 下的 html 目錄。
於是我在 FileAPI 下建了一個名叫 html的虛擬目錄,指向 NewsAPI 下的 html資料夾。

這裡寫圖片描述

注意:
配置好 IIS 後,還要設定 VS 為本地除錯模式,才可以執行程式碼。

這裡寫圖片描述

接下來是程式碼:

/// <summary>
/// 測試是否能訪問其他專案目錄下的檔案
/// </summary>
/// <returns></returns>
public string Get()
{
    string str = "";

    try
    {
        string path = System.Web.HttpContext.Current.Server.MapPath("~/html/1.txt");
        StreamReader sr = new StreamReader(path, System.Text.Encoding.GetEncoding("UTF-8"
)); str = sr.ReadToEnd(); // 讀取檔案 sr.Dispose(); } catch (System.Exception ex) { str = "報錯了!" + ex.ToString(); } return str; }

只是測試我沒有寫很複雜,就是使用 HttpContext.Current.Server.MapPath("~/xxx"); 根據虛擬目錄來獲取實際的物理路徑,然後讀取目錄下的檔案返回,path 得到的值就是物理路徑,所以可以直接訪問。

可以打個斷點看 path

的值

這裡寫圖片描述

OK!~


最後,關於 Server.MapPath 的用法大家可以看看這篇文章:server.mappath()