又做了一个整理图片的小工具

壁纸太多,但是大小不一,当作Win7幻灯片桌面的时候经常有小图片拉伸的情况。于是做了这个小软件,把分辨率相同的图片整理到一个文件夹。

做的时候先是用foreach循环,FileInfo来获取文件夹下面的图片,用Image方法来获得图片的分辨率。但是由于用了Image之后没有释放资源,导致图片无法移动。先以为是FileInfo的问题,但是FileInfo也不能释放啊……于是用了GC.Collection来回收资源,这样做了之后只有最后一个图片无法移动了……因为这个问题弄了整整一天,最后还是知道了是Image调用图片后没有释放的原因……用pic.Dispose()顺利解决问题。再一次明白了调用资源不释放是什么后果。 ̄﹏ ̄

下载页面

核心代码

foreach (string x in Directory.GetFiles(folder, "*.jpg"))
{

Image pic = Image.FromFile(x);
string distPath = preFile  + "" + pic.Width + "×" + pic.Height;
Directory.CreateDirectory(distPath);
pic.Dispose();//记得释放资源!!!!!
try
{
File.Move(x, distPath + "" + x.Substring(x.LastIndexOf("") + 1));
}
catch
{
MessageBox.Show("发生未知错误!");
}

}

发表评论

电子邮件地址不会被公开。 必填项已用*标注