string imageurl = @"E:\meishi.png";
int i = imageurl.LastIndexOf('.');
string newstr = imageurl.Substring(i + 1);
FileStream Fs = new FileStream(imageurl, FileMode.Open, FileAccess.Read);
BinaryReader rdr = new BinaryReader(Fs);
string fileClass = "";
byte buffer;
buffer = rdr.ReadByte();
fileClass = buffer.ToString();
buffer = rdr.ReadByte(); //我想问一下,这里为什么要读取2次里? 一次是不是读取不完整 还是怎么回事
fileClass += buffer.ToString();
rdr.Close();
Fs.Close();
int i = imageurl.LastIndexOf('.');
string newstr = imageurl.Substring(i + 1);
FileStream Fs = new FileStream(imageurl, FileMode.Open, FileAccess.Read);
BinaryReader rdr = new BinaryReader(Fs);
string fileClass = "";
byte buffer;
buffer = rdr.ReadByte();
fileClass = buffer.ToString();
buffer = rdr.ReadByte(); //我想问一下,这里为什么要读取2次里? 一次是不是读取不完整 还是怎么回事
fileClass += buffer.ToString();
rdr.Close();
Fs.Close();
windows下文件的前两个字节,代表了这个文件的类型。比如 .bmp 文件(Bitmap位图)的前两个字节(Byte)就是 BM ,如果前两个字节不是 BM,那它就不是一个 BMP 文件。// 下面分析程序语句
FileStream Fs = new FileStream(imageurl, FileMode.Open, FileAccess.Read);
BinaryReader rdr = new BinaryReader(Fs);
这两句创建了一个二进制的reader,此时已经准备好读一个文件了。buffer = rdr.ReadByte(); // 这句,读入了一个字节
fileClass = buffer.ToString(); //这句,将刚读入的字节存放在 一个字符串里
buffer = rdr.ReadByte(); // 这句,读入了第二个字节
fileClass += buffer.ToString(); // 将前两个自己结合在一起,就是这个文件的类型了。