Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Reflection;
- using System.Runtime.InteropServices;
- [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 void SomeMethod(string fileName)
- {
- string mimeType = getMimeFromFile(fileName);
- if (mimeType == "text/plain")
- {
- // do something
- }
- }
- private 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 ex)
- {
- return ex.Message;
- }
- }
- this.dialog = new SaveFileDialog();
- try
- {
- this.dialog.DefaultExt = ".txt";
- this.dialog.Filter = "Text Files|*.txt|Log Files|*.log|All Files|*.*";
- this.dialog.FilterIndex = 2;
- }
- catch ( Exception ex )
- {
- this.tblError.Text = "Error configuring SaveFileDialog: " + ex.Message;
- }
Add Comment
Please, Sign In to add comment