提问:C#之如何对文件类型判断

phoebuswei 2011-01-05 01:37:04
用于文件类型的判断
很多人都说在文件的头上有信息
我也读了一下,如下发现
mp3文件 "网络下载A", "网络下载B",“录音笔”
同样都是mp3的文件但是读出来的信息不一样,
同样的是请也出现在jpg的文件上,
但是bmp的文件没有出现这样的问题
我是这样做的

byte[] buffer1 = new byte[4];
using (System.IO.BinaryReader br = new System.IO.BinaryReader(new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read)))
{
br.Read(buffer1, 0, 4);
}
///
int br = new System.IO.BinaryReader(new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read)).ReadByte();
///
///FileStream的Read也是这样

这样就比较麻烦了,类型一样但是效果又不一样
...全文
361 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangsong145 2011-01-06
  • 打赏
  • 举报
回复

System.IO.FileInfo f = new System.IO.FileInfo("C:\\123.doc");
//获取文件扩展名
MessageBox.Show(f.Extension);
phoebuswei 2011-01-06
  • 打赏
  • 举报
回复
这个是一个用户上传文件
为了规范用户上传文件类型所以要进行判断
扩展名可以随便更改所以判断起来安全行较低
————————
# wuyq11
# (人生如梦)
请看贴后回帖
phoebuswei 2011-01-06
  • 打赏
  • 举报
回复
要扩展名干什么啊,就是要防止扩展名啊
扩展名被改了,判断不是失败了吗?
Awbeci 2011-01-05
  • 打赏
  • 举报
回复
简单熟悉一下,略懂!
龍过鸡年 2011-01-05
  • 打赏
  • 举报
回复
用户根据数据的需要,自定义文件编码的情况很多,所以你想通过读取文件头来判断每种文件的类型是不现实的,建议楼主通过文件名后缀获取文件类型,后缀所对应的文件类型及其在当前系统中的说明和默认程序都可以在注册表中找到。例如:root\.mp3
wuyq11 2011-01-05
  • 打赏
  • 举报
回复
判断文件头
Media (rm),文件头:2E524D46
MPEG (mpg),文件头:000001BA
MPEG (mpg),文件头:000001B3
http://hi.baidu.com/wdxzas/blog/item/cb41fc8661d1d73266096e38.html
threenewbee 2011-01-05
  • 打赏
  • 举报
回复
mp3在文件头上专门有定义,被称为id3。
图像也有自己的定义。
不过很遗憾,不同类型的文件,规范不同,只能自己去判断。
宝_爸 2011-01-05
  • 打赏
  • 举报
回复
windows下一般还是用文件扩展名来判断。

110,530

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧