在C#开发中,经常遇见资源被占用,无法进行覆盖删除等操作。

以Image类为例,Image.From*方法,都会Lock资源,导致资源无法释放,特别是文件资源。

这时,我们可以先读取文件,然后将文件保存到MemoryStream中,然后再从内存中读取文件。

 MemoryStream ms = new MemoryStream(); 
 Image img = Image.FromFile(Path);
  img.Save(ms, img.RawFormat); 
  img.Dispose();
 Image p_w_picpath = Image.FromStream(ms);