StreamWriter在创建文件后崩溃

时间:2014-12-16 15:44:20

标签: c# file-io

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

//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();
}

例外是:

  

未处理的类型' System.IO.IOException'发生在mscorlib.dll

     

附加信息:进程无法访问文件
         ' C:\ Users \用户桌面\ TestStuff \ error.txt'因为它正被另一个进程使用。

2 个答案:

答案 0 :(得分:7)

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

摆脱File.Create(path);。该方法会创建一个您未存储和关闭的文件but it also returns a file stream

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

答案 1 :(得分:2)

只需使用

即可让您更轻松
using (TextWriter tw = new StreamWriter(path, FileMode.Create, FileAccess.Write)) 
{
    tw.WriteLine(i);
}

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