我想问是否可以将写入重定向到特定文件,重定向到我的应用程序中的内存流,以便我可以立即读取它。如果可能,请说明如何操作。
谢谢。
确保您的应用程序使用Stream
.,然后您可以使用MemoryStream
具体实现来完成流式传输而无需文件。
您需要的是一个写入文件的流以及您正在观看的另一个流 - 一个流拆分器,在 Unix 世界中通常称为tee
.
对于 .NET,您可以使用流拆分器的这种实现。传递它一个FileStream
(以便文件被写入),对于第二个流,传递一个Stream
实现,它在写入流时执行您想要的任何操作(例如,MemoryStream
具有重写Write
方法的子类)。
更新:我从您的评论中看到我的答案不是您所需要的 - 我没有从您最初的问题中意识到您无法控制应用程序写入文件。
为了获得这种控制,为了获得最好的控制,您需要使用拦截系统调用的低级驱动程序——就像FileMon所做的那样。对于稍微少一点的控制,您可以使用System.IO.FileSystemWatcher。
我不知道如何按照您所说的方式执行此操作,但您可以使用 FileWatcher 来挂钩文件。如果它写给你,你会收到通知,你可以阅读它。