创建文件后流编写器崩溃

本文关键字:崩溃 文件 创建 | 更新日期: 2023-09-27 18:34:25

所以我有我的写入文件函数,如果文件不存在,它将创建文件,并且它可以工作,但问题是你第一次运行代码时,当文件不存在时,它会创建它,然后使程序崩溃

//writing file to Error.txt
string path = @err;
if (!File.Exists(path)) // if does not exist make it 
{
    File.Create(path);
    TextWriter tw = new StreamWriter(path); //crashes here after create
    tw.WriteLine(i);
    tw.Close();
}

例外情况是:

mscorlib 中发生了类型为"System.IO.IOException"的未处理异常.dll

其他信息:进程无法访问文件
"C:''Users''Desktop''TestStuff''error.txt",因为它正被另一个进程使用。

创建文件后流编写器崩溃

您在此处使用了 2 个文件流,而没有关闭第一个文件流。

摆脱File.Create(path);. 该方法创建一个文件,但它也会返回一个你不存储和关闭的文件流。

StreamWriter会为你制作文件,但它不能,因为你的程序有一个句柄。

你可以通过使用

using (TextWriter tw = new StreamWriter(path, FileMode.Create, FileAccess.Write)) 
{
    tw.WriteLine(i);
}

这将创建或从位置 0 重新打开文件,您可以像这样写入它