通过内容嗅探来确定文件类型的准确度如何?

通过内容嗅探来确定文件类型的准确度如何?

我需要识别无扩展名文件(文档文件格式,如 PDF、doc、docx 等)的 mime 类型,并且我想知道已知文件签名的准确度如何?

我要做的是创建文件类型及其签名的映射。然后从每个文件中读取十六进制值。我将使用 .NET 来实现这一点,并将嗅探功能包含在我的应用程序中。问题是我在 .NET 世界中找不到任何可以做到这一点的好库,因此我将尝试编写自己的库。在我看来,这应该很简单,因为我只对其中一小部分文件格式感兴趣。

答案1

对于某些文件类型来说,这很容易,但对于其他文件类型来说,这很难甚至不可能。每种文件类型都不同。文件中没有一个位置可以识别其类型。例如,JPEG 图像具有非常可识别的标头和某些签名、页脚,并且易于识别。但是纯文本文件根本没有附加任何元数据。如果以原始数据形式查看它们,您会发现文本信息只是混杂在前一个文件和下一个文件之间。但是,如果您有文件,那么您可以扫描整个文件以确保它是 ASCII 或 Unicode 之类的东西。

找到这样一种识别大量文件类型的方法需要付出很大努力。您应该寻找一种已经可用的工具,可以识别对您来说至关重要的大多数文件类型。这是一个 Windows 程序例如,执行类似这样的操作并有 5,944 种文件类型的定义。

您能否提供更多有关您要做什么的信息?神奇数字是多少?

相关内容