ASP.NET MVC - 尝试读取和写入文本文件时出错

本文关键字:文本 文件 出错 读取 MVC NET ASP | 更新日期: 2023-09-27 18:36:49

目前我正在尝试创建两个从文件读取和写入同一文件的控制器方法:

public ActionResult UploadText(string name)
{
    var path = Path.Combine(Server.MapPath("~/text/"), name);
    var fileContents = System.IO.File.ReadAllText(path);
    ViewData["text"] = fileContents;
    ViewData["textName"] = name;
    return View();
}
[HttpPost]
public ActionResult TextPost(string textName)
{
    string text = Request["text-content"];
    var path = Path.Combine(Server.MapPath("~/text/"), textName);
    System.IO.File.WriteAllText(path, text);
    return RedirectToAction("Index");
}
读取

文件内容并写入文件内容可以工作,但无法第二次读取,File can't be accessed because it is being used by another process出现错误。

我做错了什么?

ASP.NET MVC - 尝试读取和写入文本文件时出错

System.IO.File.ReadAllText 和 System.IO.File.WriteAllText 都在它们之后关闭文件,并根据文档完成文件。该问题源于Web的异步性质,如果您在打开文件时有多个请求,则会收到您看到的错误。下面是一些 MSDN 示例,可帮助您入门。

这里有几个链接供您娱乐

  • 在 C# 中同时读写文件
  • 如何在 C# 中读取和写入文件