我用C#写了一个控制台应用程序,它的功能是转换图片格式,并把原图片删除,求大神帮忙看看!!!
我希望的是先把jpg的图片转换为png格式,然后把原来的jpg图片删除,但格式转换成功了,原文件删除时提示文件被另一个进程占用,这个问题怎么解决?大神帮帮忙,谢谢!!!!...
我希望的是先把jpg的图片转换为png格式,然后把原来的jpg图片删除,但格式转换成功了,原文件删除时提示文件被另一个进程占用,这个问题怎么解决?大神帮帮忙,谢谢!!!!具体代码如图所示。
展开
3个回答
展开全部
1、多线程不是这么瞎搞的。。。。而且你这个控制台程序用一个线程就可以做了。
2、把原图读到流中,然后把流关闭
string imgPath = @"D:\Code\01.png";
string outputPath = @"d:\code\02.jpg";
var stream = File.Open(imgPath,FileMode.Open);
Image img = Image.FromStream(stream);
stream.Close();
img.Save(outputPath,ImageFormat.Jpeg);
if (File.Exists(imgPath))
{
File.Delete(imgPath);
}
Console.WriteLine("转换完成");
Console.ReadKey();
展开全部
格式转换后图片还是打开状态,要关闭后才能删除
追问
你这跟编程也没关联啊,我是想问问我的程序怎么改·······
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是因为没有资源释放就去删除造成的吧
追问
嗯,应该是格式转换那里还没完成,就执行了删除操作。请问怎么控制啊?我的代码怎么改?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询