ASP.NET 访问项目网站以外的目录文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Dandelion_drq/article/details/73692927

简单的说,可以通过在 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()

猜你喜欢

转载自blog.csdn.net/Dandelion_drq/article/details/73692927
今日推荐