在vb.net应用程序中打开后无法删除图像

Jon*_*an. 6 .net vb.net dispose image

我有这个代码:

Dim xx as image
xx = image.fromfile(Fileloc)
picturebox.image = xx
Run Code Online (Sandbox Code Playgroud)

即使我已将其加载到图片框中,我也无法删除该文件.如果我添加这一行:

xx.dispose
Run Code Online (Sandbox Code Playgroud)

图片框变成了一个大红色的X.

我只想在应用程序关闭时删除图像(它们是临时文件).所以,在删除它们之前,我应该将它们丢弃吗?

Tho*_*que 13

不要使用Image.FromFile,它会保持文件打开.

来自MSDN:

文件保持锁定状态,直到图像被丢弃.

这样做:

Dim xx as Image
Using str As Stream = File.OpenRead(Fileloc)
    xx = Image.FromStream(str)
End Using
picturebox.Image = xx
Run Code Online (Sandbox Code Playgroud)

加载图像后文件将关闭,因此您可以根据需要删除该文件