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

  • Mr. H

    Mr. H

    1 Temmuz 2012
  • RomanAtwood

    RomanAtwood

    18 Kasım 2009
  • wolfys you tube

    wolfys you t

    22 Kasım 2006