C# 判断文件的真实格式
2015-07-15 15:43
344 查看
为了防止
通过上面的方法,可以获取到选定文件的格式编码,然后在根据文件格式编码就可以知道这个文件是否是想要的真实格式了。
比如说
参考:http://blog.163.com/china__xuhua/blog/static/199723169201111161478889/
图片木马,通过后缀判断文件的格式是不准确的。可以通过这种方式进行判断。
static void Main(string[] args) { string path = @"C:\Users\RenJun\Desktop\课程回顾测试内容\PPT4.jpg"; System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read); System.IO.BinaryReader r = new System.IO.BinaryReader(fs); string bx = " "; byte buffer; try { buffer = r.ReadByte(); bx = buffer.ToString(); buffer = r.ReadByte(); bx += buffer.ToString(); } catch (Exception exc) { Console.WriteLine(exc.Message); } r.Close(); fs.Close(); //真实的文件类型 Console.WriteLine(bx); //文件名,包括格式 Console.WriteLine(System.IO.Path.GetFileName(path)); //文件名, 不包括格式 Console.WriteLine(System.IO.Path.GetFileNameWithoutExtension(path)); //文件格式 Console.WriteLine(System.IO.Path.GetExtension(path)); Console.ReadLine(); }
通过上面的方法,可以获取到选定文件的格式编码,然后在根据文件格式编码就可以知道这个文件是否是想要的真实格式了。
比如说
jpg格式的编码是
255216,则该图片真实格式为
jpg。
public enum FileExtension { JPG = 255216, GIF = 7173, BMP = 6677, PNG = 13780, COM = 7790, EXE = 7790, DLL = 7790, RAR = 8297, ZIP = 8075, XML = 6063, HTML = 6033, ASPX = 239187, CS = 117115, JS = 119105, TXT = 210187, SQL = 255254, BAT = 64101, BTSEED = 10056, RDP = 255254, PSD = 5666, PDF = 3780, CHM = 7384, LOG = 70105, REG = 8269, HLP = 6395, DOC = 208207, XLS = 208207, DOCX = 208207, XLSX = 208207, }
参考:http://blog.163.com/china__xuhua/blog/static/199723169201111161478889/
相关文章推荐
- C# 事件穿透 事件冒泡 鼠标点击后在父级控件捕获
- C# 事件穿透 事件冒泡 鼠标点击后在父级控件捕获
- C#通过windows注册表获取软件清单的方法
- C#实现利用Windows API读写INI文件的方法
- C#图片加文字、图片水印
- BC#42第一题
- c# 对一下XML文档进行添加删改的实例
- C#学习笔记(十二):正则表达式
- C#通过流写入一行数据到文件的方法
- BC#29第一题
- C# Socket简单例子(服务器与客户端通信)
- C#64位加密/解密
- BC#34-第一题
- Linq-C#左连接
- C# Socket
- C#读取设置Cookie(转)
- C# 对象 序列化 XML
- C# Winform应用程序调用Microsoft RDP client control实现远程连接(VS2013)
- C# GetType和typeof的区别
- C#编程 井字游戏