删除由vshost.exe锁定的图像文件c#

我有一个ac#应用程序,它在一个窗体中显示图像。 我试图覆盖这些图像并重新生成它们。 我在尝试删除现有图像时遇到异常(这是本例中的png)。 我试图处理图片框正在使用的图像,然后将其设置为空,但由于共享冲突,我仍然收到异常。 不过,我可以去浏览器并删除文件没有任何问题。

在试图找出哪个进程被锁定的情况下,Process Monitor告诉我这是托管我的应用程序的vhost.exe

我怎样才能解决这个问题? 有什么方法可以让主机释放文件锁,以便我可以删除/重新创建它? 最终,我有大量的图像生成缩略图,这将需要随时更新我的​​数据库发生影响图形的更改。 我不想认为我需要调用命令行来执行此操作。

感谢您的任何建议。

加里


您可以尝试使用文件流加载图像并在阅读后关闭它们。

FileStream fileStream = new FileStream("ImageName.jpg", FileMode.Open, FileAccess.Read);
yourPictureBox.Image = Image.FromStream(fileStream);
fileStream.Close();

或者不要明确关闭; 你可以使用using语句;

using(FileStream fileStream = new FileStream("ImageName.jpg", FileMode.Open, FileAccess.Read))
{
    yourPictureBox.Image = Image.FromStream(fileStream);
}
链接地址: http://www.djcxy.com/p/40547.html

上一篇: deleting image files locked by vshost.exe c#

下一篇: How to prevent resource leaks while using Open/Save file dialog in c#