Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET项目中引用文件夹中的文本文件_C#_Asp.net_Asp.net Mvc_Asp.net Core - Fatal编程技术网

C# 在ASP.NET项目中引用文件夹中的文本文件

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

在我的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项目中,是否有一种简单易行的方法来获取文件夹的文件路径


谢谢

我想你在找这样的东西

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
    是应用程序的根目录
  • WebRootPath
    是wwwroot文件夹
此外,为了简化工作,我使用
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项目