SORU
12 EYLÜL 2008, Cuma


Kullanarak .NET, nasıl bir dosya imza dayalı mıme tipi uzantısı olmaz mı

Basit bir şekilde dosya uzantısını yanlış veya verilmez, bir şey this question benzer sadece içinde bulunduğu bir mıme türü almak için arıyorum .Net.

CEVAP
15 EYLÜL 2008, PAZARTESİ


Sonunda urlmon.dll kullandım. Daha kolay bir yolu yok ama bu işe yarar diye düşündüm. Herkesten Yardım ve bana eğer istersem tekrar bulmak için izin vermek için kodu vardır.

using System.Runtime.InteropServices;

...

    [DllImport(@"urlmon.dll", CharSet = CharSet.Auto)]
    private extern static System.UInt32 FindMimeFromData(
        System.UInt32 pBC,
        [MarshalAs(UnmanagedType.LPStr)] System.String pwzUrl,
        [MarshalAs(UnmanagedType.LPArray)] byte[] pBuffer,
        System.UInt32 cbSize,
        [MarshalAs(UnmanagedType.LPStr)] System.String pwzMimeProposed,
        System.UInt32 dwMimeFlags,
        out System.UInt32 ppwzMimeOut,
        System.UInt32 dwReserverd
    );

    public static string getMimeFromFile(string filename)
    {
        if (!File.Exists(filename))
            throw new FileNotFoundException(filename   " not found");

        byte[] buffer = new byte[256];
        using (FileStream fs = new FileStream(filename, FileMode.Open))
        {
            if (fs.Length >= 256)
                fs.Read(buffer, 0, 256);
            else
                fs.Read(buffer, 0, (int)fs.Length);
        }
        try
        {
            System.UInt32 mimetype;
            FindMimeFromData(0, null, buffer, 256, null, 0, out mimetype, 0);
            System.IntPtr mimeTypePtr = new IntPtr(mimetype);
            string mime = Marshal.PtrToStringUni(mimeTypePtr);
            Marshal.FreeCoTaskMem(mimeTypePtr);
            return mime;
        }
        catch (Exception e)
        {
            return "unknown/unknown";
        }
    }

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 2ndfloor91

    2ndfloor91

    17 Kasım 2007
  • Amazon Web Services

    Amazon Web S

    8 NİSAN 2009
  • Shameless Maya

    Shameless Ma

    24 Mayıs 2012