我有一个TraceListener
对象,用于记录,在 app.config 中创建,指向 USB 记忆棒上的一个位置。
我收到一条IOException
消息
文件的卷已被外部更改,因此打开的文件不再有效。
Trace.WriteLine()
在我移除设备然后将其重新插入后尝试时。我知道它正在发生,因为当我拔下它时,跟踪侦听器所拥有的打开文件的句柄无效。
我已经设法IOException
通过调用Close()
TraceListener 来阻止 s,但我无法弄清楚如何再次重新打开同一个文件的句柄。方法的 MSDN 文档TextWriterTraceListener.Close()
说
在调用 Close 后调用 Write 或 WriteLine 方法会自动重新打开流。
但它只是没有这样做。关闭流后,我没有得到进一步的输出。
编辑:
更多信息
我发现跟踪侦听器只有在我调用 后Close()
尝试在拔下驱动器时写入时才无法再次写入。如果我在拔下驱动器时不写,然后再次插入驱动器并尝试写,一切正常。我还验证了我的Trace.Listeners
收藏仍然包含我的听众。