所以我有我的写入文件功能,它会创建文件,如果它不存在,它可以工作,但问题是你第一次运行代码时文件不存在它创建它然后崩溃程序
//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'因为它正被另一个进程使用。
答案 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创建或重新打开文件,您可以像这样写入