如何找出数据库中以二进制格式存储的文件的扩展名(类型)?

时间:2013-10-12 08:37:29

标签: c# .net sql-server vb.net winforms

我已经在二进制格式的数据库中存储了文件。现在我想下载这些文件,我没有在表中的任何列中存储文件的名称或扩展名或类型..只是二进制流。下载时可以从二进制流中找到扩展名吗?怎么样?

2 个答案:

答案 0 :(得分:0)

某些类型的文件可以通过其第一个字节的内容进行识别(例如,EXE文件的第一个字节为MZ,PNG文件为%PNG),但这不是一个标准,并且编写一个程序,通过查看内容几乎不可能识别每种可能的文件类型。您最好的选择是搜索客户最常用文件的信息,创建一个包含可能扩展名的新列,然后编写一个自定义程序来检查此二进制字段的内容,然后编写扩展列(如果匹配是找到)。当然修复了编写二进制内容的主程序以填充扩展列

答案 1 :(得分:0)

如果你没有在db中保存大量文件,你可以创建一个后台工作者类,它通过db中的文件来创建,创建一个tmp文件并存储所需的fileinfo和相应的ID。你可以将它与Steves的答案结合起来,你的backgroundworker类可以尝试根据第一个字节来确定文件类型,如果需要,可以创建一个tmp文件..