引用项目中文件夹中 ASP.NET 文本文件



在我的 ASP.NET MVC项目中,我在一个名为data的文件夹中有一个名为name.txt的文本文件。我想写信给它,但我很难尝试引用它。我的尝试:

string path = Path.Combine(Environment.CurrentDirectory, @"data/", name + ".txt");
StreamWriter file = new StreamWriter(path);
file.WriteLine("Write something in file");
file.Close();

不幸的是,我收到的错误是路径不存在。有没有一种简单易行的方法来获取 ASP.NET 项目中文件夹的文件路径?

谢谢

几件事。

在 ASP.NET Core 中,你需要从IWebHostEnvironment界面检索运行应用的路径。在下面的代码中,你将在构造函数中看到它使用依赖注入来访问它。

它有两个属性,

  • ContentRootPath是应用程序的根
  • 目录
  • WebRootPath是 wwwroot 文件夹

同样为了简化事情,我用File.WriteAllText()重构了写入文件,这是一个围绕 StreamWriter 的较新的便利包装器,并且完全按照答案中显示的内容执行。

最后一件事是个人喜好,我选择了字符串插值$""而不是与+连接。

public class FileSystemFileController : Controller
{
private readonly IWebHostEnvironment webHostEnvironment;
public FileSystemFileController(IWebHostEnvironment webHostEnvironment)
{
this.webHostEnvironment = webHostEnvironment;
}
public IActionResult Index(string name)
{
string path = Path.Combine(webHostEnvironment.ContentRootPath, $"data/{name}.txt");
System.IO.File.WriteAllText(path, "Write something on file");
return View();
}
}

我想你正在寻找这样的东西,

string path = Path.Combine(Environment.CurrentDirectory, @"data/", name + ".txt");
using (StreamWriter file = new StreamWriter(path))
{
file.Write("Write something on file");
}
file.Close();

请注意,using第二次尝试时会失败,因此您可能需要查看 @Danny Tuppeny 提供的关于如何创建.txt文件并将其写入 C# asp.net

问候

乔伊

相关内容

  • 没有找到相关文章

最新更新