在Windows上如何确定没有扩展名的文件类型?
我有时会收到来自客户的文件,但文件扩展名是错误的。例如,名字是image.jpg
,但文件实际上是一个TIFF图像。在许多情况下,我可以通过在文本编辑器中打开文件,查看前几个字节,然后推断出它是哪种文件类型来澄清。
这对我来说适用于JPEG、TIFF、GIF和PDF文件。然而还有更多的文件类型。
是否可以通过分析包含的数据来自动识别正确的文件类型?
我有时会收到来自客户的文件,但文件扩展名是错误的。例如,名字是image.jpg
,但文件实际上是一个TIFF图像。在许多情况下,我可以通过在文本编辑器中打开文件,查看前几个字节,然后推断出它是哪种文件类型来澄清。
这对我来说适用于JPEG、TIFF、GIF和PDF文件。然而还有更多的文件类型。
是否可以通过分析包含的数据来自动识别正确的文件类型?
File测试每个参数,试图对其进行分类。有三组测试,按这个顺序进行:文件系统测试、魔数测试和语言测试。第一个成功的测试会导致文件类型被打印出来。
被打印的文件类型通常包含以下几个词之一:text (文件只包含打印字符和一些常用的控制字符,在ASCII终端上可能是安全的),executable (文件包含以UNIX内核或其他内核可以理解的形式编译程序的结果),或data,意思是其他任何东西(数据通常是 “二进制 "或不可打印的)。例外的情况是众所周知的包含二进制数据的文件格式(核心文件,tar档案)。
我曾经为法国国家图书馆工作,建立了一个数字档案系统,里面不仅有数字化的书籍,还有数以百万计的数字文物,有各种奇怪的文件类型。我们用 JHOVE 来识别文件格式。
JHOVE是开源的,它是由JSTOR和哈佛大学图书馆维护的。 使用 相当简单。
你可以在任何电脑上检查文件类型,包括Windows http://www.checkfiletype.com 。
我在我的程序中使用 Oracle的OutsideIn库 。不是免费的,但效果很好,尤其是图片。市场上的说法是它支持500多种文件类型。