我有一个二进制列的表,它存储了许多不同的可能的文件types(PDF,BMP,JPEG,WAV,MP3,DOC,MPEG,AVI等)的文件,但没有列存储名称或types原始文件。 有没有简单的方法来处理这些行,并确定存储在二进制列中的每个文件的types? 最好是只读取文件头的实用程序,这样我就不必完全提取每个文件来确定它的types。
澄清 :我知道这里的方法涉及到只读每个文件的开始。 我正在寻找一个很好的资源(又名链接),可以做到这一点,我没有太多的大惊小怪。 谢谢。
另外,请在Windows上使用C#/ .NET 。 我不使用Linux,不能使用Cygwin(除了其他原因,不能在Windows CE上工作)。
为什么我们需要SDK和.NET Framework?
如何在WPF中使用DrawThemeTextEx
为什么MS不能使用.Net打开?
如何手动删除MSI安装?
以编程方式创buildWindows用户c#.net(使用PricinpalUser / CreateProfile)
从UserPrincipal获取WindowsPrincipal
使用BluetoothLEDevice.FromIdAsync连接到蓝牙设备会导致错误
手动创build未绑定的数据网格
在禁用wow64redirect之后,“找不到指定的程序”
如何从键盘上读取字符?
您可以使用这些工具来查找文件格式。
文件分析器http://www.softpedia.com/get/Programming/Other-Programming-Files/File-Analyzer.shtml
什么格式http://www.jozy.nl/whatfmt.html
PE文件格式分析器http://peid.has.it/
本网站可能对您有所帮助。 http://mark0.net/onlinetrid.aspx
请在下载之前验证来源。
我曾经使用过一个工具,我认为它是文件分析器,它会告诉你最接近的匹配。
快乐的工具。
这不是一个完整的答案,但一个开始的地方将是一个“神奇数字”库。 这将检查文件的前几个字节以确定一个“幻数”,并将其与已知的列表进行比较。 这是(至少部分)Linux系统上的file命令的工作原理。
其他人问了一个类似的问题,并发布了用于完成此操作的代码。 你应该能够在这里发布什么,并稍微修改它,以便从数据库中提取。
https://stackoverflow.com/questions/58510
除此之外,它看起来像有人已经写了一个基于魔术数字库来做到这一点,但是,它看起来像该网站需要注册,以及某种形式的替代访问,以便下载这个lirbary。 该文件是免费的,没有注册,这可能是有帮助的。
http://software.topcoder.com/catalog/c_component.jsp?comp=13249160&ver=2
我知道的最简单的方法是使用文件命令,它也可以在Cygwin的 Windows中使用。
许多文件类型都有定义好的头文件来开始文件。 你可以检查前几个字节来检查文件是如何开始的。
最简单的方法是通过访问具有'file'命令的* nix(或cygwin)系统:
$ file visitors.* visitors.html: HTML document text visitors.png: PNG image data,5360 x 2819,8-bit colormap,non-interlaced
您可以编写一个C#应用程序,将每个二进制列的前X个字节传递给文件命令(使用 – 作为文件名)
您需要使用一些p / invoke interop代码从Win32 API调用SHGetFileInfo方法。 这篇文章可能也有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。