【发布时间】:2013-09-16 19:59:58
【问题描述】:
在 Windows 窗体应用程序中,我有一个文件存储为 byte[]。
当用户单击按钮时,我想打开文件而不将其保存在本地。这可能吗?如果是那怎么办?
或者我必须将字节数组保存为本地文件然后运行该文件吗?
谢谢,卡尔
【问题讨论】:
-
文件类型应该是什么?
-
如果你没有将它保存在任何地方,它就不是一个文件——你只是在内存中获得了一些数据。在这种情况下,您所说的“开放”到底是什么意思?你有什么特别的理由避免保存它吗?
-
您的意思是要为该数组创建一个流吗? IE。
MemoryStream?这个“文件”最初是如何成为字节数组的?它是一个序列化的对象吗? “打开文件”对您意味着什么?在您的应用程序中打开它,还是使用该扩展程序的默认 Windows 应用程序打开它?如果它是第三方应用程序,除了将其保存在临时文件夹中并在其上调用Process.Start之类的东西之外,您无能为力。 -
@keyboardP:文件类型可以变化,但我得到了 mimetype。大多数时候有 pdf 文件或几种图像类型
-
@JonSkeet:我想打开一个文件,就像从 Windows 资源管理器中打开它一样,这样用户就可以查看它,阅读它,......功能应该看起来像“打开文件” - 浏览器中的功能(我知道文件已下载到那里的临时文件夹)