因为网站更新机器的更换导致历史图片的缺失,看上去目录都全,但是图片是损坏的,客户一阵一阵的反馈,决定通过程序过滤一下所有损坏图片.具体代码如下,需要的朋友请自便.
#region 图片损坏检查
public bool CheckImage()
{
DirectoryInfo TheFolder = new DirectoryInfo(@"c:\");//修改你的主目录地址
GetFolder(TheFolder);
CheckFile(TheFolder);
return true;
}public void GetFolder(DirectoryInfo TheFolder)
{
foreach (DirectoryInfo NextFolder in TheFolder.GetDirectories())
{
GetFolder(NextFolder);
CheckFile(NextFolder);
}
}public void CheckFile(DirectoryInfo TheFolder)
{
foreach (FileInfo NextFile in TheFolder.GetFiles())
{
if (NextFile.Extension.Contains("jpg") ||
NextFile.Extension.Contains("png") ||
NextFile.Extension.Contains("gif"))
{
try
{
Bitmap bmp = new Bitmap(NextFile.FullName);
if (bmp == null)
{
//图片损坏输出到日志
Common.DIYUtility.LogHelper.Error("图片损坏", NextFile.FullName);
}
}
catch (Exception ex)
{//图片损坏输出到日志
Common.DIYUtility.LogHelper.Error("图片损坏", NextFile.FullName+"|"+ex.Message);
}
}
}
}
#endregion