源于:在读取图片时,总喜欢首先采用:Image img=Image.FromFile("");操作,这种方式由于 调用图片的程序与图片文件是通过 绝对地址关联的,会造成 当前进程或其它进程无法对该图片 进行类似的操作[提示文件正在使用中]...
回想曾经有过的做法,即将图片数据读取到内存中,再进行显示等相关操作,这样就让程序与其图片地址没有直接的操作关联...从而达到重复对图片进行读取,校验...等可能的操作步骤...
注:其它文件类型的操作估计也有可能会出现相同的境遇和无奈...
----------
----有过教训,但不曾重视,或不曾记得...所以,还是笔记下来,顺便博客一下...以后方便查询,巩固...
以下是参考代码:
/// <summary> /// 此方法加载的图片,由于与文件地址绑定,且作为打开读取状态,所以不能进行再次对文件处理的操作...[会提示正在使用中] /// 所以,建议使用 Frm2(pth),通过将其读取到流中,并在读取完成后记得关闭流...就可以再次重复相同或类似的相同文件读取处理操作 /// </summary> /// <param name="pth"></param> /// <returns></returns> private static Image Frm(string pth) { Image img = Image.FromFile(pth); return img; } /// <summary> /// 建议使用 /// 测试:正确 /// 时间:202106172300 /// </summary> /// <param name="pth"></param> /// <returns></returns> public static Image Frm2(string pth) { FileStream fs = new FileStream(pth, FileMode.Open); return Frm2(fs); } /// <summary> /// 建议使用 /// 测试:正确 /// 时间:202106172300 /// </summary> /// <param name="strm"></param> /// <returns></returns> public static Image Frm2(Stream strm) { Image img = Image.FromStream(strm); strm.Close(); return img; }
暂时只考虑到此种方法...
交流 QQ : 2412366909@qq.com
手机号码:177-7499-4428
注:本人使用过程中暂未发现造成存取不正确的问题