文件正在被另一个进程.net使用
本文关键字:进程 net 使用 另一个 文件 | 更新日期: 2023-09-27 18:03:24
我需要创建/附加一个文本文件,并在其中写入一些数据。当我写下面的代码到我的ASP。. NET应用程序,它给出文件正在被另一个进程使用的错误。
if (!File.Exists(path'file))
File.CreateText(path'file);
using(StreamWriter sw = File.AppendText(Server.MapPath(path'file)))
{
sw.WriteLine("Text Data");
sw.Close();
}
您必须在下面的代码中创建一个文件,并在创建后关闭该文件。
if (!File.Exists(""))
{
StreamWriter sr = File.CreateText("");
sr.Close();
}
看看这个来自MSDN的例子。这将向您展示如何创建文本文件。
OR,你可以用这种方式创建一个文本文件;下面的代码来自MSDN
if (!File.Exists(path))
{
// Create a file to write to.
using (StreamWriter sw = File.CreateText(path))
{
}
}
如果另一个进程对你想要的文件有排他锁,你几乎无能为力,除了强制删除该文件的所有句柄,或者终止该进程,这两种方法都会导致未定义的行为(由拥有排他锁的另一个程序)。
你应该
- 等待其他程序完成使用文件
- 写入其他文件
- 其他有意义的东西。
如果你确定只有你的代码访问这个文件,只要返回并确保关闭你之前打开过的文件的所有句柄。
如果你还没有这样做(我们没有看到你的所有代码),你需要关闭你的File.CreateText()
调用的打开文件句柄,因为它返回一个带有打开句柄的StreamWriter
到你的文件。
您是否在文本编辑器中打开了文件?你最近在文本编辑器中打开过它吗?如果是这样,您应该确保您的文本编辑器已完全关闭,其进程已被杀死。
如果没有,那么它可能意味着其他脚本,或者在无限循环中卡住的同一脚本的以前版本已经打开了文件。如果你能负担得起杀死所有ASP。. NET脚本可能会修复它