微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有一种简单的方法来确定文件的types而不知道文件的扩展名?

我有一个二进制列的表,它存储了许多不同的可能的文件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] 举报,一经查实,本站将立刻删除。

相关推荐