另一个进程.NET正在使用该文件

3 .net c# asp.net file-io

我需要创建/附加一个文本文件并在其中写入一些数据.当我将下面的代码写入我的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();
}
Run Code Online (Sandbox Code Playgroud)

fox*_*oxy 5

如果另一个进程对你想要的文件有一个独占锁,除了强行删除文件的所有句柄或者杀死进程之外,几乎没有什么可以做的,除了这两个进程都会导致未定义的行为(由另一个进程)具有独占锁定的程序).

你也应该

  1. 等待其他程序完成使用该文件
  2. 写入另一个文件
  3. 其他有意义的东西.

如果您确定只有您的代码访问此文件,只需返回并确保关闭完成之前打开的文件的所有句柄.

如果您还没有这样做(我们没有看到您的所有代码),您需要关闭File.CreateText()调用中的打开文件句柄,因为它会返回一个打开文件句柄StreamWriter.


Muh*_*tar 5

您必须在下面的代码中创建这样的文件,并在创建后关闭该文件.

if (!File.Exists(""))
{            
    StreamWriter sr =  File.CreateText("");
    sr.Close();
}
Run Code Online (Sandbox Code Playgroud)

MSDN看一下这个例子.这将向您展示如何创建文本文件.

或者,您可以这种方式创建文本文件; 以下代码来自MSDN

if (!File.Exists(path)) 
{
    // Create a file to write to.
    using (StreamWriter sw = File.CreateText(path)) 
    {

    }   
}
Run Code Online (Sandbox Code Playgroud)