2011-12-16 31 views
6

在过去几个月中,我有几次通过它的标头验证文件格式:JPEG,PDF,Word和其他流行文件。按照标头验证文件格式的库

我不知道是否有一个库可用于C#/ .net来做到这一点? 或者现在是否为NuGet目录开始一个小型项目?

回答

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-Pac卡格FileTypeDetective

+0

hm发布之前,你可以试着运行StyleCop左右来改进编码风格。例如“catch(Exception)”并不是最佳实践,也不能识别可用8年的基于xml的办公室格式,FileInfo的扩展也不适合直接使用,因为文件是真正打开的。 – user287107 2015-05-12 18:35:03

1

对于大多数文件格式,您可以在文件的开头读取magic numbers以确定文件类型。这是基于* nix的系统如何知道文件类型,而不管文件扩展名。

+2

讨论的FindMimeFromData功能到底是什么我正在寻找,以及我如何实施我的解决方案。我想知道这是否已经被其他人完成了。 – trailmax 2011-12-16 20:32:21