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

protected static Dictionary<String, String> head2FileType = new Dictionary<String, String>();

            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");

        /// <summary>  
        /// 获取文件类型(默认为*.*)  
        /// </summary>  
        /// <param name="fileName"></param>  
        /// <returns></returns>  
        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();
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#中,有多种方法可以判断文件是否存在。其中一种方法是使用File.Exists()函数。你可以在if语句中使用这个函数来判断文件是否存在。例如,可以使用以下代码来判断文件名为test.txt的文件是否存在: ```csharp if(File.Exists(@"E:\Files\test.txt")) { // 文件存在的处理逻辑 } else { // 文件不存在的处理逻辑 } ``` 另一种方法是使用System.IO.Directory.Exists()函数来判断文件是否存在。你可以在if语句中使用这个函数来判断文件是否存在。如果文件夹不存在,可以使用System.IO.Directory.CreateDirectory()函数来创建文件夹。例如,可以使用以下代码来判断文件夹"E:\Files"是否存在: ```csharp if (!System.IO.Directory.Exists(@"E:\Files")) { System.IO.Directory.CreateDirectory(@"E:\Files"); // 创建文件夹的处理逻辑 } ``` 还有其他方法可以判断文件是否存在,比如通过FileInfo类、DirectoryInfo类等。但以上提到的两种方法是最常用的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [C#判断文件夹或文件是否存在的方法](https://blog.csdn.net/BeanGo/article/details/121902170)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [C#判断文件存在的几种方法详解](https://blog.csdn.net/weixin_34174132/article/details/92657594)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值