如何在附加到流时删除文件

How to delete a file while it is attached to a stream

我开发了一个 UDP 客户端控制台应用程序来检索数据包数据并将它们写入文本文件。我一直在使用流将数据写入文本文件。由于全天都在写入文本文件,因此无法处理流。这些文件每天生成,我需要删除前几天写的文本文件。但是无法删除文件;有一条错误消息说该文件已被另一个进程使用。虽然目前并没有真正写入前一天的文件,但它们似乎仍然附加到流中。由于我无法处理或关闭流,是否有可能删除附加到特定进程的那些旧文本文件?谢谢你。

您似乎没有正确处理您的流。它们仍然 'alive' 在记忆中。您应该弄清楚是什么阻止您的流被垃圾收集。例如,您可以通过在全局 属性(或更好的管理器)中保留对所有流的引用以及创建它的 DateTime 时间戳来做到这一点。这样,通过检查时间戳,您可以确定可以关闭哪些流。确保 closedispose 您的流。

请注意,流是昂贵的资源,应尽量减少使用量。