库通过标头验证文件格式

时间:2011-12-16 17:30:45

标签: c# .net

在过去几个月里,我有几次通过它的标题验证文件格式的相同任务:JPEG,PDF,Word和其他流行文件。

我想知道C#/ .Net是否有可用的库? 或者是时候为NuGet目录开始一个小项目了吗?

3 个答案:

答案 0 :(得分:5)

对于那些将来会发现这个问题的人:我已经开始编写这个库了。一旦我有大量不同的类型,我会将它提交给NuGet。但目前源代码可在此处获取:http://filetypedetective.codeplex.com/

图书馆的想法是能够在isPdf()个对象上拨打isZip()FileInfo

FileInfo file = new FileInfo("C:\Hello.pdf");
if ( file.isPdf())
    Console.WriteLine("File is PDF");

更新:终于开始创建nuget包了:

  

Install-Package FileTypeDetective

答案 1 :(得分:1)

对于大多数文件格式,您可以阅读文件开头的magic numbers以确定文件类型。这就是基于* nix的系统知道文件类型的方式,无论文件扩展名如何。

答案 2 :(得分:0)

OP的解决方案是GPL,但使用Win32 API和P / Invoke的解决方案可在https://gyorgybalassy.wordpress.com/2013/08/04/mime-types-sniffing-in-c-sharp/

获得

它使用https://msdn.microsoft.com/en-us/library/ms775107(v=vs.85).aspx

中讨论的FindMimeFromData函数