我有一个 winforms 应用程序,它将文件的内容存储在数据库中。存储的文件可以是几乎任何类型(word、excel、PDF、文本、图像...),用户可以选择加载任何类型的文件。

然后,用户可以查询数据库,找到文件,然后打开它。

我从数据库中提取字节数组(无论是流还是字节数组)都没有问题。

理想情况下,我能够直接从字节数组或流显示文件;目前我将其保存为临时文件,然后使用以下命令打开它:

Process.Start(fileName);

如何从任何字节数组或流文件中显示具有关联应用程序的文件?

有帮助吗?

解决方案

在窗口,你唯一的选择就是做你正在做什么。 Outlook,IE浏览器,Firefox,都做到这一点。

其他提示

也许你想研究内存映射文件一点点。

您可以尝试打开包含它的目录,但它会是你现在正在做正确的同样的事情。如果相关的应用程序是由操作系统已知的,那么就没有问题..

如果将文件名与字节流一起存储在数据库中,则可以根据扩展名确定文件类型。在这种情况下有两个选择:

  1. 使用注册表来确定要使用的应用程序。有关这方面的更多信息,请查看此对话 字节网.
  2. P/调用 SH获取文件信息 以确定使用什么应用程序。

注意: 使用这两个选项,您仍然需要将文件数据写入磁盘上的临时文件才能加载它。

就我个人而言,我认为您正在做的事情可能是最简单的选择(除非您想为某些文件类型提供自定义查看器等)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top