C#在删除图片时,抛出异常“文件正在被另一进程使用,无法删除”

dashanyelang 2017-06-20 10:34:29
图片可能被另一个程序的进程使用,但我用以下方式都没有检测出图片被占用,而是在删除图片的时候出现异常

或是这样

...全文
1382 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
程序里面 没有遇到过YEAH!!
dashanyelang 2017-06-20
  • 打赏
  • 举报
回复
引用 4 楼 gac520 的回复:
文件被占用肯定是无法删除的, 使用结束后要释放该资源,删除前做个资源释是否占用的判断应该也能解决!
对啊,我做了判断的啊,如图,但是我没有判断出来
dashanyelang 2017-06-20
  • 打赏
  • 举报
回复
引用 8 楼 duanzi_peng 的回复:
[quote=引用 7 楼 dashanyelang 的回复:] [quote=引用 2 楼 duanzi_peng 的回复:] 在删除图片的时候出现异常 -》那在加载的完毕之后 没有释放对象,应该优化这个代码段。
是另外一个程序在用这个图片,现在我就是想判断在我在我删除前有没有进程在使用它[/quote] 用Process类判断进程是否运行,如果运行时使用Kill方法 结束占用进程。[/quote] 能否给点点代码提示?
dashanyelang 2017-06-20
  • 打赏
  • 举报
回复
引用 6 楼 hbu_pig 的回复:
 using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
            { }
在这里加Using和在程序头上加using引用有什么不同?
exception92 2017-06-20
  • 打赏
  • 举报
回复
引用 7 楼 dashanyelang 的回复:
[quote=引用 2 楼 duanzi_peng 的回复:] 在删除图片的时候出现异常 -》那在加载的完毕之后 没有释放对象,应该优化这个代码段。
是另外一个程序在用这个图片,现在我就是想判断在我在我删除前有没有进程在使用它[/quote] 用Process类判断进程是否运行,如果运行时使用Kill方法 结束占用进程。
dashanyelang 2017-06-20
  • 打赏
  • 举报
回复
引用 2 楼 duanzi_peng 的回复:
在删除图片的时候出现异常 -》那在加载的完毕之后 没有释放对象,应该优化这个代码段。
是另外一个程序在用这个图片,现在我就是想判断在我在我删除前有没有进程在使用它
欢乐的小猪 2017-06-20
  • 打赏
  • 举报
回复
 using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
            { }
夏天的枫 2017-06-20
  • 打赏
  • 举报
回复
那你直接写删除的代码呢。 读取文件后释放掉是必须的~
浪子-无悔 2017-06-20
  • 打赏
  • 举报
回复
文件被占用肯定是无法删除的, 使用结束后要释放该资源,删除前做个资源释是否占用的判断应该也能解决!
xdashewan 2017-06-20
  • 打赏
  • 举报
回复
图片对象可能使用后未被释放
exception92 2017-06-20
  • 打赏
  • 举报
回复
在删除图片的时候出现异常 -》那在加载的完毕之后 没有释放对象,应该优化这个代码段。
exception92 2017-06-20
  • 打赏
  • 举报
回复
文件正在被另一进程使用,无法删除 -》使用using语句或者手动释放占用对象。
闭包客 2017-06-20
  • 打赏
  • 举报
回复
你的方法和删除所请求的锁级别不同。
正怒月神 2017-06-20
  • 打赏
  • 举报
回复
引用 19 楼 dashanyelang 的回复:
对啊我就奇怪啊,jpg格式的好像只是打开也判断不了
这个也就真不清楚了,没有办法的办法,就是用filestream打开,如果出现异常,也就是被占用了
dashanyelang 2017-06-20
  • 打赏
  • 举报
回复
引用 17 楼 chenandczh 的回复:
如果操作系统中 已有该文件进程在运行,你说怎么删?除非是360那种流氓软件内核级去杀。
我的目的不是要删,而是用代码判断图片有没有被占用
dashanyelang 2017-06-20
  • 打赏
  • 举报
回复
引用 18 楼 hanjun0612 的回复:
[quote=引用 16 楼 dashanyelang 的回复:] 我想要的是通过代码先判断有没有进程使用它
我测试了你的方法,对于txt文件无效,对于word文件有效。 其他文件我就不测试了 [/quote] 对啊我就奇怪啊,jpg格式的好像只是打开也判断不了
正怒月神 2017-06-20
  • 打赏
  • 举报
回复
引用 16 楼 dashanyelang 的回复:
我想要的是通过代码先判断有没有进程使用它

我测试了你的方法,对于txt文件无效,对于word文件有效。
其他文件我就不测试了

绿领巾童鞋 2017-06-20
  • 打赏
  • 举报
回复
如果操作系统中 已有该文件进程在运行,你说怎么删?除非是360那种流氓软件内核级去杀。
dashanyelang 2017-06-20
  • 打赏
  • 举报
回复
引用 15 楼 hanjun0612 的回复:
[quote=引用 13 楼 dashanyelang 的回复:] 时计算机里另一个程序在使用这张图片啦
除非你先关闭这个图片,或者图片的进程[/quote] 所以现在我是要判断这张图片有没有在被其他进程使用,但以我在图上贴的方式用代码做,判断不了,直到删除的时候才出现异常。我想要的是通过代码先判断有没有进程使用它
正怒月神 2017-06-20
  • 打赏
  • 举报
回复
引用 13 楼 dashanyelang 的回复:
时计算机里另一个程序在使用这张图片啦
除非你先关闭这个图片,或者图片的进程
加载更多回复(3)

110,546

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧