在过去几个月中,我有几次通过它的标头验证文件格式:JPEG,PDF,Word和其他流行文件。按照标头验证文件格式的库
我不知道是否有一个库可用于C#/ .net来做到这一点? 或者现在是否为NuGet目录开始一个小型项目?
在过去几个月中,我有几次通过它的标头验证文件格式:JPEG,PDF,Word和其他流行文件。按照标头验证文件格式的库
我不知道是否有一个库可用于C#/ .net来做到这一点? 或者现在是否为NuGet目录开始一个小型项目?
对于那些将来会发现这个问题的人:我已经开始写图书馆了。一旦我有大量的不同类型,我会提交给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
对于大多数文件格式,您可以在文件的开头读取magic numbers以确定文件类型。这是基于* nix的系统如何知道文件类型,而不管文件扩展名。
讨论的FindMimeFromData功能到底是什么我正在寻找,以及我如何实施我的解决方案。我想知道这是否已经被其他人完成了。 – trailmax 2011-12-16 20:32:21
的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
hm发布之前,你可以试着运行StyleCop左右来改进编码风格。例如“catch(Exception)”并不是最佳实践,也不能识别可用8年的基于xml的办公室格式,FileInfo的扩展也不适合直接使用,因为文件是真正打开的。 – user287107 2015-05-12 18:35:03