是否可以直接从MemoryStream
打开文件,而不是先写入磁盘再使用Process.Start()
?特别是pdf文件?如果不行,我想我需要将MemoryStream
写入磁盘(这有点麻烦)。那么,有人能指点一下如何将MemoryStream
写入磁盘的资源吗?
是否可以直接从MemoryStream
打开文件,而不是先写入磁盘再使用Process.Start()
?特别是pdf文件?如果不行,我想我需要将MemoryStream
写入磁盘(这有点麻烦)。那么,有人能指点一下如何将MemoryStream
写入磁盘的资源吗?
这取决于客户端 :) 如果客户端接受来自stdin的输入,您可以将数据“push”到客户端。另一个可能性是编写一个命名管道服务器或套接字服务器-不太容易,但它可能有效。
然而,最简单的选择就是只需获取一个临时文件并向其写入(然后删除)。
var file = Path.GetTempFileName();
using(var fileStream = File.OpenWrite(file))
{
var buffer = memStream.GetBuffer();
fileStream.Write(buffer, 0, (int)memStream.Length);
}
完成后记得清理文件。
WriteTo
(对于非 4.0 版本) - Magnususing (var memoryStream = /* create the memory stream */)
using (var fileStream = File.OpenWrite(fileName))
{
memoryStream.WriteTo(fileStream);
}