我将一个文件直接保存到我的 ASP.NET Web API 项目中,我需要在其中一个操作中访问该文件。我可以在本地运行时访问该文件并将其转换为流,但部署到云后,我不断收到此错误:
System.IO.FileNotFoundException: 找不到文件“C:\home\site\wwwroot\myfile.docx”。
我可以在 wwwroot 的某个地方找到该文件吗?它保存到我的 Web API 项目中,该项目没有 ...site\wwwroot... 结构。仅当应用程序部署到 Azure 时才会出现此问题。
我已经尝试过以下方法,但没有成功。
Environment.CurrentDirectory + myfile.docx
并且
(string)AppDomain.CurrentDomain.GetData("ContentRootPath") + myfile.docx
您可以将路径设置为简单的文件名;
以下创建和读取文件的代码对我有用。
[HttpGet("write")]
public void write()
{
var path = Path.Combine("MyTest.txt");
using (FileStream fs = System.IO.File.Create(path))
{
byte[] content = new UTF8Encoding(true).GetBytes("Hello World");
fs.Write(content, 0, content.Length);
}
}
[HttpGet("read")]
public string read()
{
string text= System.IO.File.ReadAllText("MyTest.txt");
return text;
}
像“test/MyTest.txt”这样的路径也可以。但创建文件时需要准备“test”文件夹。