2011-12-16 5 views
6

Algunas veces en los últimos meses tuve la misma tarea de verificar el formato de archivo por su encabezado: JPEG, PDF, Word y otros archivos populares.Bibliotecas para verificar el formato de archivo por encabezado

Me pregunto si hay una biblioteca disponible para C# /. Net para hacer eso? ¿O es hora de comenzar un pequeño proyecto para el catálogo NuGet?

Respuesta

5

Para aquellos que encontrarán esta pregunta en el futuro: he comenzado a escribir la biblioteca. Una vez que tenga una cantidad significativa de diferentes tipos, lo enviaré a NuGet. Pero en el momento en que el código fuente está disponible aquí: http://filetypedetective.codeplex.com/

La idea de la biblioteca es ser capaz de llamar a isPdf() o isZip() en FileInfo objetos:

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

etc.

actualización : finalmente se dio la vuelta para crear el paquete nuget:

Install-Pac Kage FileTypeDetective

solución
+0

hm antes de publicar, puede intentar ejecutar StyleCop para mejorar el estilo de codificación. por ejemplo, "catch (Exception" no es una buena práctica), los formatos de oficina xml que están disponibles desde hace 8 años no se reconocen. La extensión de FileInfo tampoco se ajusta directamente, ya que el archivo está realmente abierto, etc. – user287107

+1

@ user287107 Ese proyecto fue abandonado durante mucho tiempo y nadie lo usa. Siéntase libre de modificarlo para sus necesidades. – trailmax

1

Para la mayoría de los formatos de archivo, puede leer el magic numbers al comienzo del archivo para determinar el tipo de archivo. Así es como los sistemas basados ​​en * nix conocen el tipo de archivo independientemente de la extensión del archivo.

+2

que es exactamente lo Estoy buscando y cómo implementé mis soluciones. Me pregunto si ya lo hizo alguien más. – trailmax

Cuestiones relacionadas