我用C#写了一个控制台应用程序,它的功能是转换图片格式,并把原图片删除,求大神帮忙看看!!!

我希望的是先把jpg的图片转换为png格式,然后把原来的jpg图片删除,但格式转换成功了,原文件删除时提示文件被另一个进程占用,这个问题怎么解决?大神帮帮忙,谢谢!!!!... 我希望的是先把jpg的图片转换为png格式,然后把原来的jpg图片删除,但格式转换成功了,原文件删除时提示文件被另一个进程占用,这个问题怎么解决?大神帮帮忙,谢谢!!!!具体代码如图所示。 展开
 我来答
376710727
2017-03-31 · TA获得超过8937个赞
知道大有可为答主
回答量:2593
采纳率:100%
帮助的人:1272万
展开全部

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();
更多追问追答
追问

抛出了异常,然后生成了一张0kb的png图片

追答
不要在C:/下操作, 一般的调试器都没有这个权限。
换到D盘或者其他非系统盘下。
有点灬小老实
2017-03-31 · TA获得超过137个赞
知道小有建树答主
回答量:300
采纳率:0%
帮助的人:127万
展开全部
格式转换后图片还是打开状态,要关闭后才能删除
追问
你这跟编程也没关联啊,我是想问问我的程序怎么改·······
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7973797
2017-03-31
知道答主
回答量:38
采纳率:0%
帮助的人:9.1万
展开全部
是因为没有资源释放就去删除造成的吧
追问
嗯,应该是格式转换那里还没完成,就执行了删除操作。请问怎么控制啊?我的代码怎么改?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式