在过去几个月里,我有几次通过它的标题验证文件格式的相同任务:JPEG,PDF,Word和其他流行文件。
我想知道C#/ .Net是否有可用的库? 或者是时候为NuGet目录开始一个小项目了吗?
答案 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函数