【发布时间】:2016-06-28 12:24:26
【问题描述】:
我试图找出没有扩展名的文件是否是图像,但似乎无法正确处理。我知道它绝对是一张图片,因为我可以在 ms paint 中打开它。这是我的代码
private bool IsImage(Stream stream)
{
stream.Seek(0, SeekOrigin.Begin);
List<string> jpg = new List<string> { "FF", "D8" };
List<string> bmp = new List<string> { "42", "4D" };
List<string> gif = new List<string> { "47", "49", "46" };
List<string> png = new List<string> { "89", "50", "4E", "47", "0D", "0A", "1A", "0A" };
List<List<string>> imgTypes = new List<List<string>> { jpg, bmp, gif, png };
List<string> bytesIterated = new List<string>();
for (int i = 0; i < 8; i++)
{
string bit = stream.ReadByte().ToString("X2");
bytesIterated.Add(bit);
bool isImage = imgTypes.Any(img => !img.Except(bytesIterated).Any());
if (isImage)
{
textBox1.Text = "is image";
return true;
}
}
textBox1.Text = "is not image";
return false;
}
private void button1_Click(object sender, EventArgs e)
{
string filepath = @"C:\Users\William\Documents\drivers\2";
MemoryStream mStrm = new MemoryStream(Encoding.UTF8.GetBytes(filepath));
IsImage(mStrm);
}
也忽略它在一个名为驱动程序的文件中,该文件不是驱动程序或任何东西
【问题讨论】:
-
这看起来很有希望,我看看,谢谢
-
您收到的错误信息是什么?
标签: c# .net image file-extension