C# 判断文件真实扩展名称

protected static Dictionary head2FileType = new Dictionary();

            head2FileType.Add("FFD8FFE1", "jpg");
            head2FileType.Add("89504E47", "png");
            head2FileType.Add("47494638", "gif");
            head2FileType.Add("49492A00", "tif");
            head2FileType.Add("424D", "bmp");
            head2FileType.Add("41433130", "dwg");
            head2FileType.Add("38425053", "psd");
            head2FileType.Add("7B5C727466", "rtf");
            head2FileType.Add("3C3F786D6C", "xml");
            head2FileType.Add("68746D6C3E", "html");
            head2FileType.Add("44656C69766572792D646174", "eml");
            head2FileType.Add("CFAD12FEC5FD746F ", "dbx");
            head2FileType.Add("2142444E", "pst");
            head2FileType.Add("D0CF11E0", "xls/doc");
            head2FileType.Add("5374616E64617264204A", "mdb");
            head2FileType.Add("FF575043", "wpd");
            head2FileType.Add("252150532D41646F6265", "eps/ps");
            head2FileType.Add("255044462D312E", "pdf");
            head2FileType.Add("E3828596", "pwl");
            head2FileType.Add("504B0304", "zip");
            head2FileType.Add("52617221", "rar");
            head2FileType.Add("57415645", "wav");
            head2FileType.Add("41564920", "avi");
            head2FileType.Add("2E7261FD", "ram");
            head2FileType.Add("2E524D46", "rm");
            head2FileType.Add("000001BA", "mpg");
            head2FileType.Add("000001B3", "mpg");
            head2FileType.Add("6D6F6F76", "mov");
            head2FileType.Add("3026B2758E66CF11", "asf");
            head2FileType.Add("4D546864", "mid");

        ///

 
        /// 获取文件类型(默认为*.*)  
        ///
 
        ///  
        ///  
        public String FileType(String fileName)
        {
            try
            {
                String head = BytesToHexString(fileName);
                return head2FileType[head];
            }
            catch
            {
                return "*.*";
                //未进行异常日志记录  
                //throw new IOException();  
            }
        }
        private static String BytesToHexString(String fileName)
        {
            StringBuilder stringBuilder = new StringBuilder();
            using (FileStream fis = new FileStream(fileName, FileMode.OpenOrCreate))
            {
                try
                {
                    byte[] b = new byte[4];
                    fis.Read(b, 0, b.Length);

                    for (int i = 0; i < b.Length; i++)
                    {
                        int v = b[i] & 0xFF;
                        String hv = Convert.ToString(v, 16); //转换为16进制  
                        if (hv.Length < 2)
                        {
                            stringBuilder.Append(0);
                        }
                        stringBuilder.Append(hv);
                    }
                }
                catch
                {
                    //未进行异常日志记录  
                    throw new IOException();
                }
                finally
                {
                    if (fis != null)
                        fis.Close();
                }
            }
            return stringBuilder.ToString().ToUpper();
        }

你可能感兴趣的:(c#,linq,xml)