我有一个winforms应用程序,用于存储数据库中的文件内容。存储的文件可以是几乎任何类型(word,excel,PDF,text,image ...),用户可以选择要加载的任何类型的文件。
然后,用户可以查询数据库,找到一个文件,然后将其打开。
我从数据库中提取字节数组没有问题,无论是流还是字节数组。
理想情况下,我可以直接从字节数组或流中显示文件;目前我将其保存为临时文件,然后打开:
Process.Start(fileName);
如何从任何字节数组或流文件中显示带有关联应用程序的文件?
答案 0 :(得分:3)
在Windows中,您唯一的选择就是完成您正在做的事情。 Outlook,Internet Explorer,Firefox,都这样做
答案 1 :(得分:0)
也许你想研究一下Memory Mapped File。
答案 2 :(得分:0)
你可以尝试打开包含它的目录,但是你现在正在做同样的事情..如果操作系统知道关联的应用程序,那么就没有问题了。
答案 3 :(得分:0)
如果将文件名与字节流一起存储在DB中,则可以从扩展名中确定文件类型。在这种情况下有两种选择:
NB:使用这两个选项,您仍然需要将文件数据写入磁盘上的临时文件,以便加载它。
就我个人而言,无论如何,我认为你所做的事情可能是最简单的选择(除非你想为某些文件类型提供自定义查看器等)