比如说我把一个*.mp3文件扩展名改成了*.wma,WindowsMediaPlayer播放器就会检查出内容与扩展名不一致,并发出警告,C#如何才能检查?

解决方案 »

  1.   

    按二进拷制方式,读出文件的前几个字节比较,这种方法并不严格。
    http://topic.csdn.net/u/20100201/15/88f18491-3b94-46a5-9d9f-2b8995b7175c.html
    JPEG (jpg),文件头:FFD8FF 
    PNG (png),文件头:89504E47 
    GIF (gif),文件头:47494638 
    TIFF (tif),文件头:49492A00 
    Windows Bitmap (bmp),文件头:424D 
    CAD (dwg),文件头:41433130 
    Adobe Photoshop (psd),文件头:38425053 
    Rich Text Format (rtf),文件头:7B5C727466 
    XML (xml),文件头:3C3F786D6C 
    HTML (html),文件头:68746D6C3E 
    Email [thorough only] (eml),文件头:44656C69766572792D646174653A 
    Outlook Express (dbx),文件头:CFAD12FEC5FD746F 
    Outlook (pst),文件头:2142444E 
    MS Word/Excel (xls.or.doc),文件头:D0CF11E0 
    MS Access (mdb),文件头:5374616E64617264204A 
    WordPerfect (wpd),文件头:FF575043 
    Postscript (eps.or.ps),文件头:252150532D41646F6265 
    Adobe Acrobat (pdf),文件头:255044462D312E 
    Quicken (qdf),文件头:AC9EBD8F 
    Windows Password (pwl),文件头:E3828596 
    ZIP Archive (zip),文件头:504B0304 
    RAR Archive (rar),文件头:52617221 
    Wave (wav),文件头:57415645 
    AVI (avi),文件头:41564920 
    Real Audio (ram),文件头:2E7261FD 
    Real Media (rm),文件头:2E524D46 
    MPEG (mpg),文件头:000001BA 
    MPEG (mpg),文件头:000001B3 
    Quicktime (mov),文件头:6D6F6F76 
    Windows Media (asf),文件头:3026B2758E66CF11 
    MIDI (mid),文件头:4D546864 
    这是此前一个CSDN朋友的解决方法。
      

  2.   

    读取文件头数据
    WAV 00H 4 char "RIFF"标志 
    04H 4 long int 文件长度 
    08H 4 char "WAVE"标志 
    0CH 4 char "fmt"标志 
    Wave (wav),文件头:57415645 
    AVI (avi),文件头:41564920