c# – 通过查看其二进制内容以编程方式找到文件类型.可能?

我有一个c#组件,它将收到以下类型的文件
.doc,.pdf,.xls,.rtf

这些将由调用siebel传统应用程序作为文件流发送.

所以…

[LegacyApp]>> {二进制文件流}>> [零件]

遗留应用程序是一个黑盒子,无法修改以告诉组件它发送的文件类型(doc,pdf,xls).组件需要读取此二进制流并在具有正确扩展名的文件系统上创建文件.

有任何想法吗?

谢谢你的时间.

解决方法

在基于 Linux / Unix的系统上,您可以使用file命令,但我假设您想在代码中自己手动执行此操作…

如果你有权访问的是文件字节流,那么你需要独立处理每种文件类型.

执行您想知道的大多数程序/组件通常会读取前几个字节并根据它进行分类.例如,GIF文件以下列之一开头:GIF87a或GIF89a

许多文件格式在文件开头具有相同的签名,或者具有相同的标头格式.此签名称magic number as described by me on this post.

入门的好地方是转到www.wotsit.org.它包含可按文件类型搜索文件格式规范.您可以查看要处理的重要文件类型,看看是否可以在这文件格式中找到一些识别因素.

您还可以搜索Google以尝试查找执行此分类的库,或查看文件命令的源代码.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...