2

我想问是否可以将写入重定向到特定文件,重定向到我的应用程序中的内存流,以便我可以立即读取它。如果可能,请说明如何操作。

谢谢。

4

3 回答 3

4

确保您的应用程序使用Stream.,然后您可以使用MemoryStream具体实现来完成流式传输而无需文件。

于 2009-08-24T10:33:14.920 回答
2

您需要的是一个写入文件的流以及您正在观看的另一个流 - 一个流拆分器,在 Unix 世界中通常称为tee.

对于 .NET,您可以使用流拆分器的这种实现。传递它一个FileStream(以便文件被写入),对于第二个流,传递一个Stream实现,它在写入流时执行您想要的任何操作(例如,MemoryStream具有重写Write方法的子类)。

更新:我从您的评论中看到我的答案不是您所需要的 - 我没有从您最初的问题中意识到您无法控制应用程序写入文件。

为了获得这种控制,为了获得最好的控制,您需要使用拦截系统调用的低级驱动程序——就像FileMon所做的那样。对于稍微少一点的控制,您可以使用System.IO.FileSystemWatcher

于 2009-08-24T10:37:24.100 回答
0

我不知道如何按照您所说的方式执行此操作,但您可以使用 FileWatcher 来挂钩文件。如果它写给你,你会收到通知,你可以阅读它。

于 2009-08-24T10:26:51.500 回答