删除被 vshost.exe C# 锁定的图像文件



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

在试图找出哪个进程锁定了此映像时,进程监视器告诉我这是托管我的应用程序的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);
}

相关内容

  • 没有找到相关文章

最新更新