OWIN WEB API自主主机解析文件夹的路径

时间:2015-08-10 04:40:55

标签: asp.net-web-api owin

ApiController 中的表单。我需要阅读项目中嵌入的文件的内容。但我无法解决正确的路径

[HttpPost]
public HttpResponseMessage DoSomething()
{
    String content = System.IO.File.ReadAllText(@"~\SomeFolder\file.txt");
}

这样解决的路径指向:

  

C:... \ BIN \调试\〜\ SomeFolder \ file.txt的

而不是

  

C:... \ SomeFolder \ file.txt的

有没有人知道如何在 OWIN 自我主机下解决这个问题?

1 个答案:

答案 0 :(得分:0)

通常,尝试访问项目内的文件没有意义。部署所需的所有文件(dll,assets,txts,...)应该复制到一个单独的文件夹中,这样当我们需要部署时,我们只需要复制该文件夹。

您应将文件设置为复制到输出并尝试:

String content = System.IO.File.ReadAllText(@"SomeFolder\file.txt");

已解决

C:...\bin\Debug\SomeFolder\file.txt

要使代码与OWIN一起使用,您可以查看此答案How do you resolve a virtual path to a file under an OWIN host?。它建议使用HostingEnvironment.MapPath并回退到在自托管方案中手动操作文件路径。