首页 > 编程语言 >C# net core 从文件流中获取文件头、匹配文件类型

C# net core 从文件流中获取文件头、匹配文件类型

时间:2022-10-31 22:00:56浏览次数:65  
标签:core downdata mpg 文件 C# 流中 Windows Adobe

常用文件的文件头如下:

(以前六位为准) 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 

///
filetype  文件后缀。如.doc
downdata byte[]文件流
///public bool CheckFileheader(string filetype,byte[] downdata)
{
if(downdata == null || downdata.Count() <= 0)
return false;
StringBuilder sbmodel = new StringBuilder();
int filetitlecount = 4;
if(".jpeg,jpg".Contains(filetype))filetitlecount = 3;
for(int i = 0;i< filetitlecount;i++)
{
int v = downdata[i] & 0xFF;
string str16 = Convert.ToString(v,16).ToUpper();
sbmodel.Append(str16);
}
if(sbmodel.ToString() == "D0CF11E0" || sbmodel.ToString() == "504B0304" ||   sbmodel.ToString() == "504B34" )
return true;
else
return false;
}

本文来自博客园,作者:zwbsoft,转载请注明原文链接:https://www.cnblogs.com/zwbsoft/p/16401177.html

标签:core,downdata,mpg,文件,C#,流中,Windows,Adobe
From: https://www.cnblogs.com/bigoldtwo/p/16846001.html

相关文章

  • [I.MX6UL] U-Boot 命令使用(五) EMMC 和 SD 卡操作命令
    uboot支持EMMC和SD卡,因此也要提供EMMC和SD卡的操作命令。一般认为EMMC和SD卡是同一个东西,所以没有特殊说明,本教程统一使用MMC来代指EMMC和SD卡。uboot......
  • docker部署zabbix6.0及企业微信发送告警
    1前言1.1实验背景因zabbix6.0新增许多新特性,为熟悉界面特意在本地部署一套简易版(未启用HA功能)。原本想要在烧制了centos7.9系统树莓派上部署,一查之下armv7果然冷门,mar......
  • Linux下使用nm命令排查和解决“undefined reference to ”
    一、案例    编译出一个动态库.libXXXEngine.so。然后直接在另一个工程中,把头文件include进来,并link到该库:-lXXXEngine.尝试编译,出错:.//libXXXEngine.so:undefin......
  • ActiveMQ的使用
    应用场景:异步处理、应用解耦、流量消峰简介:Apache出品,是一个完全支持JMS1.1和J2EE1.4规范的JMS Provider实现JMS消息模型:1)P2P点对点模型(Queue队列模型)......
  • 洛谷 P1464 Function(dfs+记忆化搜索)
    https://www.luogu.com.cn/problem/P1464单个返回条件的时候,直接return多个返回条件的时候,采用记忆化搜索思想,边存储边继续往下搜索中间穿插记忆化判断,如果之前有过此......
  • 基于PCIe的多路视频采集与显示子系统
    基于PCIe的多路视频采集与显示子系统1       概述视频采集与显示子系统可以实时采集多路视频信号,并存储到视频采集队列中,借助高效的硬实时视频帧出入队列管理和P......
  • JavaScript快速入门
    JavaScript快速入门1.前端知识体系  想要成为真正的“互联网Java全栈工程师”还有很长的一段路要走,其中前端是绕不开的一门必修课。本阶段课程的主要目的就是带领Ja......
  • CSS3快速入门
    CSS3快速入门1.什么是CSS1.什么是CSSCascadingStyleSheet层叠样式表。CSS:表现(美化网页)。字体,颜色,边距,高度,宽度,背景图片,网页定位,网页浮动。2.CSS发展史CSS......
  • Leetcode第481题:神奇字符串(Magical string)
    解题思路根据题意,我们可以把ss看成是由「11组」和「22组」交替组成的,重点在于每组内的数字是一个还是两个,这可以从ss自身上知道。构造到ss的长度达到nn时停止......
  • Vulnhub Lin.Security靶机解题过程
    Lin.Security靶机地址:http://www.vulnhub.com/entry/linsecurity-1,244/由于靶机的作者直接给出了ssh用户名和密码,本题非常简单识别目标主机IP地址─(kali㉿kali)-[~/V......