2011-06-28 6 views

答えて

0
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; 
      } 
+0

これはフィルタを設定することです。私は、アプリケーションをホストしているブラウザがどのようなコンテンツタイプであるかを知りたい。 – MrW

1

あなたが探しているのは、アップロードされたファイルのMimeタイプです。私はこれがSilverlightで動作するだろうと推測しています。しかし、私はその理由でそれを使用したことはありません。次のように追加する必要があります。

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; 
     } 
    } 
関連する問題