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

标签 c# file sharing filelock

我有一个 C# 应用程序,它以表单形式显示图像。我正在尝试覆盖这些图像并重新生成它们。当我尝试删除现有图像(在本例中为 png)时,出现异常。我尝试处理图片框正在使用的图像,然后将其设置为 null,但由于共享冲突,我仍然收到异常。尽管如此,我可以进入资源管理器并毫无问题地删除该文件。

在试图找出哪个进程锁定了此镜像时,进程监视器告诉我它是托管我的应用程序的 vhost.exe

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

感谢您的建议。

加里

最佳答案

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

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);
}

关于c# - 删除由 vshost.exe c# 锁定的图像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10551229/

相关文章:

c# - 要很好地实现单元测试,需要关注哪些 C# 项目?

Java 的 createNewFile() - 它还会创建目录吗?

security - 来自 S3 或其他地方的共享内容

android - 移动网络应用程序的“共享功能”

php - 在 PHP 中如何对文件进行反向排序?

Android WhatsApp 图片分享

c# - 如何在不刷新页面的情况下运行我的代码?

c# - Parallel.ForEach 可以导致 "Out Of Memory"异常,如果使用可枚举的大对象

C#:为什么减小图像大小会导致图像质量非常差?我可以做任何事

c# - 将文件写入名称递增的路径