C# 在ASP.NET项目中引用文件夹中的文本文件
在我的ASP.NET MVC项目中,在名为data的文件夹中有一个名为name.txt的文本文件。我很想写信给它,但我很难引用它。我的尝试:C# 在ASP.NET项目中引用文件夹中的文本文件,c#,asp.net,asp.net-mvc,asp.net-core,C#,Asp.net,Asp.net Mvc,Asp.net Core,在我的ASP.NET MVC项目中,在名为data的文件夹中有一个名为name.txt的文本文件。我很想写信给它,但我很难引用它。我的尝试: string path = Path.Combine(Environment.CurrentDirectory, @"data/", name + ".txt"); StreamWriter file = new StreamWriter(path); file.WriteLine("Write somet
string path = Path.Combine(Environment.CurrentDirectory, @"data/", name + ".txt");
StreamWriter file = new StreamWriter(path);
file.WriteLine("Write something in file");
file.Close();
不幸的是,我收到的错误是路径不存在。在ASP.NET项目中,是否有一种简单易行的方法来获取文件夹的文件路径
谢谢我想你在找这样的东西
string path = Path.Combine(Environment.CurrentDirectory, @"data/", name + ".txt");
using (StreamWriter file = new StreamWriter(path))
{
file.Write("Write something on file");
}
file.Close();
请注意,使用
将在第二次尝试时失败,因此您可能需要查看@Danny Tuppeny提供的关于此问题的解决方案
问候,
乔伊两件事
在ASP.NET Core中,您需要从IWebHostEnvironment
界面检索应用程序运行的路径。在下面的代码中,您将在构造函数中看到它使用依赖项注入来访问它
它有两个特性
是应用程序的根目录ContentRootPath
是wwwroot文件夹WebRootPath
file.writealText()
重构了对文件的写入,它是StreamWriter的一个较新的方便包装器,它的功能与答案中所示完全相同
最后一件事是个人偏好,我选择了字符串插值$”
,而不是用+
连接
公共类FileSystemFileController:控制器
{
私人只读iWebHostenEnvironment WebHostenEnvironment;
公共文件系统文件控制器(IWebHostenEnvironment WebHostenEnvironment)
{
this.webHostEnvironment=webHostEnvironment;
}
公共IActionResult索引(字符串名称)
{
字符串path=path.Combine(webHostEnvironment.ContentRootPath,$“data/{name}.txt”);
System.IO.File.WriteAllText(路径,“在文件上写入内容”);
返回视图();
}
}
澄清请求:其中一个标签是asp.net-core,这是asp.net MVC项目(.net Framework)还是asp.net核心MVC项目(.net core)?嗨,亚当!这是一个ASP.NET核心MVC项目