Có thể mở tệp trực tiếp từ MemoryStream
trái ngược với ghi vào đĩa và thực hiện Process.Start()
không? Cụ thể là một tệp pdf? Nếu không, tôi đoán tôi cần phải viết MemoryStream
vào đĩa (đó là loại gây phiền nhiễu). Ai đó sau đó có thể chỉ cho tôi một nguồn lực về cách viết một MemoryStream
vào đĩa?Cách mở tệp từ Memory Stream
Trả lời
Nó phụ thuộc vào khách hàng :) nếu khách hàng sẽ chấp nhận đầu vào từ stdin bạn có thể đẩy dta cho khách hàng. Một khả năng khác có thể là viết một máy chủ có tên-pipe hoặc một máy chủ socket - không tầm thường, nhưng nó có thể hoạt động.
Tuy nhiên, tùy chọn đơn giản nhất là chỉ cần lấy tệp tạm thời và ghi vào đó (và xóa sau đó).
var file = Path.GetTempFileName();
using(var fileStream = File.OpenWrite(file))
{
var buffer = memStream.GetBuffer();
fileStream.Write(buffer, 0, (int)memStream.Length);
}
Nhớ dọn dẹp tệp khi bạn hoàn tất.
Hoặc sử dụng 'WriteTo' (cho không phải 4.0) – Magnus
@Magnus - tôi đã xóa điều đó; nhận ra rằng tôi có thể sử dụng bộ đệm sau từ MemoryStream –
Nếu bằng cách mở một tệp, bạn có nghĩa là một cái gì đó như bắt đầu Adobe Reader cho tệp PDF, sau đó có, bạn phải ghi nó vào một tệp. Tức là, trừ khi ứng dụng cung cấp cho bạn một số API làm điều đó.
Một cách để viết một dòng suối để nộp sẽ là:
using (var memoryStream = /* create the memory stream */)
using (var fileStream = File.OpenWrite(fileName))
{
memoryStream.WriteTo(fileStream);
}
Path.GetTempFileName() trả về tên tập tin với phần mở rộng '.tmp', do đó bạn cant't sử dụng Process.Start() mà cần cửa sổ tập tin hiệp hội thông qua phần mở rộng.
- 1. Memory Stream là DB
- 2. Đọc tệp với node.js, mongoose, gridfs-stream
- 3. Bao gồm từ luồng "php: // memory"
- 4. Cách mở tệp vcproj từ CDT Eclipse?
- 5. Cách mở tệp bên ngoài từ HTML
- 6. C# Chụp Video Stream Từ Cửa sổ
- 7. Mở tệp từ Cygwin
- 8. System.Drawing.Image to stream C#
- 9. php/IIS: thất bại trong việc mở stream: Permission denied
- 10. Chơi các file mp3 trong JavaFX từ input stream
- 11. Cách mở tệp "nul"?
- 12. C# Webclient Stream tải xuống tệp từ FTP sang bộ nhớ cục bộ
- 13. Java LockSupport Memory Consistency
- 14. Cách đọc Firefox "about: memory" chính xác?
- 15. Nhúng IronPython Memory Leak
- 16. Tải lên tệp HTML: có cách nào để buộc nội dung-type = "application/octet-stream"
- 17. Cách mở tệp .hprof
- 18. Cách mở tệp .a
- 19. cách mở tệp * .sdf?
- 20. Out of Memory Concepts
- 21. Haskell's Stream Fusion
- 22. Cách lấy phần mở rộng loại tệp từ byte [] (Blob)
- 23. Làm cách nào để tải tệp mở rộng từ OpenFileDialog?
- 24. Cách mở tệp PDF qua Intent từ thẻ SD
- 25. C# System.Buffer.BlockCopy Memory Issue?
- 26. Memory trong OpenCL
- 27. nodejs stream vs callbacks
- 28. Cần phải Capture Video Stream từ Camera trong C# Application
- 29. Memory Leak GETIPFROMHOST
- 30. nodejs setTimeout memory leak?
(James - Tôi đã xóa phụ thuộc 4.0 khỏi câu trả lời của mình) –