目前我正在尝试创建两个从文件读取并写入同一文件的控制器方法:
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
错误。
我做错了什么?
答案 0 :(得分:0)
System.IO.File.ReadAllText和System.IO.File.WriteAllText在它们之后关闭文件并按照documentation完成文件。问题源于网络的异步性质,如果您在文件打开时有多个请求,您将收到您所看到的错误。这里有一些MSDN examples可以帮助您入门。
以下是一些您喜欢的链接