C# 根据文件流byte[]数组前两位 判断文件类型 附 文件扩展名说明

判断文件真实的类型,不是通过扩展名来判断:而是通过byte[]数组前两位编码来判断,
原文连接 https://www.cnblogs.com/Percy_Lee/p/4980451.html

         /// <summary>
        /// 判断文件格式
        /// http://www.cnblogs.com/babycool
        /// </summary>
        /// <param name="filePath"></param>
        /// <returns></returns>
        public static bool IsAllowedExtension(string filePath)
        {

            FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
            BinaryReader reader = new BinaryReader(stream);
            string fileclass = "";
           // byte buffer;
            try
            {

                //buffer = reader.ReadByte();
                //fileclass = buffer.ToString();
                //buffer = reader.ReadByte();
                //fileclass += buffer.ToString();

                for (int i = 0; i < 2; i++)
                {
                    fileclass += reader.ReadByte().ToString();
                }

            }
            catch (Exception)
            {

                throw;
            }

            if (fileclass == "255216")
            {
                return true;
            }
            else
            {
                return false;
            }

            /*文件扩展名说明
             * 255216 jpg
             * 208207 doc xls ppt wps
             * 8075 docx pptx xlsx zip
             * 5150 txt
             * 8297 rar
             * 7790 exe
             * 3780 pdf
             *
             * 4946/104116 txt
             * 7173        gif
             * 255216      jpg
             * 13780       png
             * 6677        bmp
             * 239187      txt,aspx,asp,sql
             * 208207      xls.doc.ppt
             * 6063        xml
             * 6033        htm,html
             * 4742        js
             * 8075        xlsx,zip,pptx,mmap,zip
             * 8297        rar
             * 01          accdb,mdb
             * 7790        exe,dll
             * 5666        psd
             * 255254      rdp
             * 10056       bt种子
             * 64101       bat
             * 4059        sgf
             */

        }

原文地址:https://www.cnblogs.com/sunny3158/p/11736156.html

时间: 2025-01-06 04:14:42

C# 根据文件流byte[]数组前两位 判断文件类型 附 文件扩展名说明的相关文章

Java 文件和byte数组转换

/**      * 获得指定文件的byte数组      */      private byte[] getBytes(String filePath){          byte[] buffer = null;          try {              File file = new File(filePath);              FileInputStream fis = new FileInputStream(file);              Byte

键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:&quot;java&quot;,&quot;txt&quot;)作为key, 用个数作为value,放入到map集合中,遍历map集合

package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Scanner;import java.util.Set; /** 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt&qu

c#文件转化byte数组

1 public static byte[] ReadFile(string fileName) 2 { 3 if (!File.Exists(fileName)) 4 { 5 throw new Exception("文件为空"); 6 } 7 8 byte[] pReadByte = new byte[0]; 9 try 10 { 11 using (FileStream pFileStream = new FileStream(fileName, FileMode.Open, F

Java获取文件的byte数组数据

public static byte[] getFileByteArray(File file) { long fileSize = file.length(); if (fileSize > Integer.MAX_VALUE) { System.out.println("file too big..."); return null; } byte[] buffer = null; try (FileInputStream fi = new FileInputStream(fi

输出所有形如aabb的4位完全平方数(即前两位数字相等,后两位数字也相等)

计算完全平方根可以使用math库中的sqrt完成,但需要注意以下几点:a取值应为1-9,b取值为0-9:完全平方得到的结果是浮点型,因为浮点型不像整形可能有误差的存在(TODO:浮点型计算误差),可以使用floor(sqrt(x)+0.5)来减小误差,这里稍微展开说下:如果sqrt(x)的结果本来是1,由于浮点计算的误差导致结果为0.9999,那么cast到int型其结果就是0,因此用四舍五入的方式来减少这种误差(这涉及到浮点型的精度问题,如果精度较高的浮点表示,那计算结果于预期的波动会相对较小

C# 通过HttpWebRequest 创建连接获取文件大小 判断Http类型的文件是否存在

1 public void DisposeReportData(SynFileInfo item) 2 { 3 MReport report = new MReport(); 4 report.文件名 = item.DocName; 5 report.URL = item.DownPath; 6 HttpWebRequest request = null; 7 HttpWebResponse response = null; 8 try 9 { 10 request = WebRequest.C

根据身份证前2位判断属于哪个省

package com.sycx.domain; public class ProByIDcard { public static String GetPro(String word){ String pro = "错误身份证号"; if(word.equals("11")){ pro = "北京市"; }else if(word.equals("12")){ pro = "天津市"; }else if(w

C# 对象、文件与二进制串(byte数组)之间的转换

1.关于本文 在使用C#下的TCP(类TcpClient).UDP(类UdpClient)协议传输信息时,都需要将信息转换为byte类型的数组进行发送.本文实现了两种object与byte数组的转换和一种文件与byte数组转换的方式.基础类型的数据,可以用BitConverter类中的函数进行转换. 2.object与byte[]的相互转换:使用IFormatter的Serialize和Deserialize进行序列化与反序列化 实现这个功能,需要先引用三个命名空间:System.IO.Syst

delphi 合并两个 Wav 文件流的函数

delphi 合并两个 Wav 文件流的函数 合并两个 Wav 文件的函数 实例一 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); e