我有一个 StreamWriter 对象要写入日志文件,它的初始化如下:
StreamWriter streamWriter = File.AppendText(GetLogFilePath());
streamWriter.AutoFlush = true;
稍后在我的代码中,我需要关闭日志文件,然后读取部分已注销的内容。我有以下代码:
streamWriter.Close();
streamWriter = null;
StreamReader logFileStream = File.OpenText(GetLogFilePath());
这是抛出异常: 该进程无法访问该文件,因为它正在被另一个进程使用。
据推测,问题是我关闭 StreamWriter 时没有正确关闭日志文件。
有没有更好的方法来关闭 StreamWriter 以确保它打开的文件被正确关闭?
更新:我已经解决了我的问题。这是由一个不相关的问题引起的(一个单独的应用程序正在访问我试图访问的文件)。我接受了 Dmitry Martovoi 的回答,因为我认为这对将来遇到类似问题的其他人最有用;但重要的一点是,该解决方案确实需要在每次写入日志时都打开日志文件,这可能会导致不必要的开销。