ApiController 中的表单。我需要阅读项目中嵌入的文件的内容。但我无法解决正确的路径
[HttpPost]
public HttpResponseMessage DoSomething()
{
String content = System.IO.File.ReadAllText(@"~\SomeFolder\file.txt");
}
这样解决的路径指向:
C:... \ BIN \调试\〜\ SomeFolder \ file.txt的
而不是
C:... \ SomeFolder \ file.txt的
有没有人知道如何在 OWIN 自我主机下解决这个问题?
答案 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并回退到在自托管方案中手动操作文件路径。