是否可以直接從MemoryStream
打開文件,而不是寫入磁盤並執行Process.Start()
?特別是一個PDF文件?如果不是,我想我需要將MemoryStream
寫入磁盤(這有點令人討厭)。那麼有人能指點我一個關於如何將MemoryStream
寫入磁盤的資源?如何從內存流中打開文件
5
A
回答
7
這取決於客戶端:)如果客戶端將接受來自stdin的輸入,您可以將的推送給客戶端。另一種可能是編寫一個命名管道服務器或一個套接字服務器 - 不是微不足道的,但它可能工作。
但是,最簡單的選擇是隻抓取臨時文件並寫入(然後刪除)。
var file = Path.GetTempFileName();
using(var fileStream = File.OpenWrite(file))
{
var buffer = memStream.GetBuffer();
fileStream.Write(buffer, 0, (int)memStream.Length);
}
記得在完成後清理文件。
+0
或者使用'WriteTo'(非4.0) – Magnus 2011-06-04 12:18:55
+0
@Magnus - 我刪除;意識到我可以使用MemoryStream的後臺緩衝區 – 2011-06-04 12:21:35
0
如果打開一個文件,你的意思是這樣開始的Adobe Reader對PDF文件,那麼是的,你必須把它寫入一個文件。也就是說,除非應用程序爲您提供了一些API。寫入文件流
一種方法是:
using (var memoryStream = /* create the memory stream */)
using (var fileStream = File.OpenWrite(fileName))
{
memoryStream.WriteTo(fileStream);
}
1
Path.GetTempFileName()返回文件名以 '.TMP' 擴展名,因此,你cant't使用需要的Process.Start()通過擴展與windows文件關聯。
相關問題
- 1. 從內存流中打開「文件」?
- 2. 如何在內存中打開文件?
- 3. 如何在JavaScript中打開文件流?
- 4. 如何從zip內打開html文件?
- 5. 如何從Vim內部打開文件?
- 6. 文件打開內存c#
- 7. 從內存中打開PDF文檔
- 8. PHP:未能打開流:文件存在
- 9. 如何打開保存在內存中
- 10. 如何在UIDocumentInteractionController中打開內存不足的文件?
- 11. 從URL到文件的流文件不存儲在內存中
- 12. PHP - 文件獲取內容無法打開流從網址
- 13. 如何從EXE打開的文件夾打開文件。 VB
- 14. 打開文件流運API
- 15. C++打開文件流
- 16. GWT從內存中的字節數組打開文件
- 17. 從WebBrowser控件內打開文件?
- 18. 如何從未保存的文件中打開和讀取內容
- 19. 如何從文件中打印內容
- 20. 如何直接從終端打開Weka知識流文件?
- 21. 如何從輸入流重新打開文件
- 22. 如何打開檔案內的文件?
- 23. 如何打開和保存文件
- 24. 從內存流上傳文件到SFTP
- 25. 從內存流C創建Zip文件#
- 26. 如何從內存中刪除流?
- 27. 如何從內存流中填充richtextbox?
- 28. python audiotools從內存中打開
- 29. 從內部存儲的下載文件夾中打開下載的文件(pdf)
- 30. 從uri打開流
(詹姆斯 - 我刪除了4.0依賴從我的答案) – 2011-06-04 12:22:00