es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

C# Cómo encontrar el tipo de contenido real de un archivo

Deseo encontrar el tipo de contenido real de un archivo cuyo tipo de archivo ha sido cambiado. Por ejemplo, tengo un archivo abc.xls. Cuando cambio la extensión de archivo “.xls” a jpg (abc.jpg), el tipo de contenido también cambia. Después de eso, estoy revisando el tipo de contenido y me devuelve image/jpg. Pero quiero conocer el tipo de contenido real (application/ms-excel). ¿Es posible? Con C#.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible encontrar el tipo de contenido real de un archivo utilizando C# incluso si la extensión del archivo ha cambiado. Una forma de hacer esto es utilizando una biblioteca de identificación de tipos MIME llamada “MimeKit”.

    Aquí hay un ejemplo de fragmento de código que demuestra cómo usar MimeKit para obtener el tipo de contenido real de un archivo:

    using MimeKit;
    using System.IO;
    
    // Ruta del archivo renombrado
    string filePath = "ruta/al/archivo/abc.jpg";
    
    // Crear un objeto MimeMessage a partir del archivo
    MimeMessage message = MimeMessage.Load(filePath);
    
    // Obtener el valor del encabezado Content-Type
    string contentType = message.ContentType.MimeType;
    
    // Mostrar el tipo de contenido real
    Console.WriteLine("Tipo de contenido real: " + contentType);
    

    En el código anterior, creamos un objeto MimeMessage a partir del archivo utilizando el método Load(). Luego, obtenemos el valor del encabezado Content-Type utilizando la propiedad MimeType del encabezado ContentType. Por último, mostramos el tipo de contenido real en la consola.

    Ten en cuenta que para que este método funcione, el archivo debe contener encabezados MIME válidos. Si el archivo no contiene ningún encabezado, o si los encabezados están corruptos o son inválidos, es posible que este método no funcione como se espera.

Comments are closed.