正在将文本写入文件c#。它';正在被另一个进程使用

正在将文本写入文件c#。它';正在被另一个进程使用,c#,asp.net,C#,Asp.net,我正在创建一个文本文件,之后我试图在该文件中写入一些文本。但在写入文本时,它会生成一个异常,该进程无法访问该文件,因为它正被另一个进程使用。请帮忙:(提前谢谢。 这是我的密码 dt_Loc = loc1_ctab.GetEmpLocInfo(Session["empcd"].ToString()); string str = DateTime.Now.ToString("dd-mmm-yyyy"); str = dt_Loc.Rows[0]["loc1_abrv"].ToString() + "

我正在创建一个文本文件,之后我试图在该文件中写入一些文本。但在写入文本时,它会生成一个异常,该进程无法访问该文件,因为它正被另一个进程使用。请帮忙:(提前谢谢。 这是我的密码

dt_Loc = loc1_ctab.GetEmpLocInfo(Session["empcd"].ToString());
string str = DateTime.Now.ToString("dd-mmm-yyyy");
str = dt_Loc.Rows[0]["loc1_abrv"].ToString() + "-" + str;

string path = FilesPath.Path_SaveFile + str + ".txt";
if (!File.Exists(path))
{
    File.Create(path);
    TextWriter tw = new StreamWriter(path);
    tw.WriteLine(txt_comments.Text);
    tw.Close();
}

您的代码给出了此类错误,因为方法Create在指定路径中创建或覆盖了一个文件。该方法将返回一个
FileStream
,该文件提供对路径中指定文件的读/写访问。因此,在执行writemethod时,返回的FS正在使用该文件。您可以通过以下方式使用此方法:

using (FileStream fs = File.Create(path))
{
   Byte[] info = new UTF8Encoding(true).GetBytes(txt_comments.Text);
   // Add some information to the file.
   fs.Write(info, 0, info.Length);
}
您可以通过使用来简化操作,它将创建一个新文件,将内容写入该文件,然后关闭该文件。如果目标文件已存在,则会覆盖该文件

string path =FilesPath.Path_SaveFile + str + ".txt";;
if (!File.Exists(path))
{
    File.WriteAllText(path, txt_comments.Text);
}

您的代码给出了此类错误,因为方法Create在指定路径中创建或覆盖了一个文件。该方法将返回一个
FileStream
,该文件提供对路径中指定文件的读/写访问。因此,在执行writemethod时,返回的FS正在使用该文件。您可以通过以下方式使用此方法:

using (FileStream fs = File.Create(path))
{
   Byte[] info = new UTF8Encoding(true).GetBytes(txt_comments.Text);
   // Add some information to the file.
   fs.Write(info, 0, info.Length);
}
您可以通过使用来简化操作,它将创建一个新文件,将内容写入该文件,然后关闭该文件。如果目标文件已存在,则会覆盖该文件

string path =FilesPath.Path_SaveFile + str + ".txt";;
if (!File.Exists(path))
{
    File.WriteAllText(path, txt_comments.Text);
}

删除该文件。创建,因为它会打开该文件的FileStream。这会导致该文件处于打开状态,因此会出现另一个进程正在使用该文件的异常

if (!File.Exists(path))
{            
     using(StreamWriter sw = new StreamWriter(path))
     {
         sw.WriteLine(txt_comments.Text);
     }
}

删除该文件。创建,因为它会打开该文件的FileStream。这会导致该文件处于打开状态,因此会出现另一个进程正在使用该文件的异常

if (!File.Exists(path))
{            
     using(StreamWriter sw = new StreamWriter(path))
     {
         sw.WriteLine(txt_comments.Text);
     }
}

你能找出哪个其他进程/应用程序正在使用同一文件吗?有时重建时.VS会创建多个线程。请尝试重新打开VS。谢谢,但我得到了解决方案:)你能找出哪个其他进程/应用程序正在使用同一文件吗?有时重建时。VS创建多个线程。尝试重新打开VS.谢谢,但我得到了解决方案:)