ASP.NET 訪問專案網站以外的目錄檔案
阿新 • • 發佈:2018-11-05
簡單的說,可以通過在 IIS
新增虛擬目錄的方法做到,獲取訪問路徑的時候就用 HttpContext.Current.Server.MapPath("~/xxx");
的方式。
下面詳細講一下具體怎麼做……
首先看 IIS 上部署的專案網站結構:
有兩個專案網站,NewsAPI
和 FileAPI
,現在想在 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()