通过读取文件内容来判断。
所有的图片文件都包括:文件识别头和图象数据两部分,
其中文件识别头用来让 计算机判断是哪种文件 格式。
其中文件识别头用来让 计算机判断是哪种文件 格式。
JPEG 所有的JPEG文件以字符串“0xFFD8”开头,并以字符串“0xFFD9”结束。依此便可判别是否是JPEG文件。
BMP
BMP文件以字符串“0x4D42”开头
GIF
gif头六个是 GIF89a或 GIF87a
大部分都是通过将文件读成二进制流,取前两个字节判断,比如.jpg的是255216.代码如下:
public static FileExtension CheckTextFile(string fileName)
{
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
System.IO.BinaryReader br = new System.IO.BinaryReader(fs);
string fileType = string.Empty; ;
try
{
byte data = br.ReadByte();
fileType += data.ToString();
data = br.ReadByte();
fileType += data.ToString();
FileExtension extension;
try
{
extension = (FileExtension)Enum.Parse(typeof(FileExtension), fileType);
}
catch
{
extension=FileExtension.VALIDFILE
}
return extension;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (fs != null)
{
fs.Close();
br.Close();
}
}
}
}
public enum FileExtension
{
JPG = 255216,
GIF = 7173,
PNG = 13780,
SWF = 6787,
RAR = 8297,
ZIP = 8075,
_7Z = 55122,
VALIDFILE=9999999
}