代码之家  ›  专栏  ›  技术社区  ›  Tigraine

HttpWebRequest对象的相对文件路径

  •  0
  • Tigraine  · 技术社区  · 17 年前

    我正在尝试创建可以在我的开发团队中共享的单元测试,因此我需要使项目中的所有路径都是相对的。

    这给我带来麻烦的是HttpWebRequest类。 我希望它能够从本地文件系统中的一个文件中提供静态测试数据。

    我想这样做:

    file:///./TestData/test.html
    

    但这只会产生C:\TestData\test.html和DirectoryNotFoundException。

    var request = HttpWebRequest.Create(uri);
    var response = request.GetResponse();
    var responseStream = new StreamReader(response.GetResponseStream());
    return responseStream.ReadToEnd();
    

    我如何说服C#在不破坏Uri语法的情况下解析相对路径?

    你好,丹尼尔

    2 回复  |  直到 17 年前
        1
  •  1
  •   JaredPar    17 年前

    与项目中的任何程序集相比,您尝试为服务器提供的文件是否具有相对路径?如果是这样,那么您可以基于其中一个程序集的路径构建一个非相对URL,并将其返回给调用者。

    var basePath = Path.GetDirectoryName(typeof(MyType).Assembly.Location);
    var fullPath = Path.Combine(basePath, @"TestData\test.html");
    return new Uri(fullPath);
    
        2
  •  -1
  •   BFree    17 年前