C#文件删除文件老是说另一个进程正在使用

2024-12-19 11:44:52
推荐回答(4个)
回答1:

这个问题我遇到过,是Image.FromFile的问题,Image控件读取图片
微软官方解释是:一个 图像对象从一个文件构造时该文件仍保留锁定对于对象的生存期。 因此, 无法更改图像并将其保存回它产生相同的文件。

我想你只浏览一次是不会出问题的,一旦浏览第二次就会报错了是吧。

解决办法:
Bitmap bmp = new Bitmap(filename );
//新建第二个bitmap类型的bmp2变量,。
Bitmap bmp2 = new Bitmap(1024, 768, PixelFormat.Format16bppRgb555);
//将第一个bmp拷贝到bmp2中
Graphics draw = Graphics.FromImage(bmp2);
draw.DrawImage(bmp,0,0);
//读取bmp2到getPhoto
emoloyee.getPhoto.Image=bmp2;
draw.Dispose();
bmp.Dispose();//释放bmp文件资源

回答2:

这是因为你查询了数据库 所以反应会变慢 如果你快速的点击combobox 就会出现你说的现象

解决方法可以用一个"单例模式" 或者把FileStream 弄成全局变量

回答3:

用unlocker可以查看文件被什么进程锁定,我是用这个方法的

回答4:

加断点,看看提示正在被使用的时候,有哪些进程锁定文件了。