如何从文件系统加载图像(到图像控件),然后从文件系统中删除它

时间:2014-01-22 04:41:57

标签: wpf

我有这个非常奇怪的问题,想看看你们能不能在这里给我一些建议。我想从特定的文件URI将图像加载到图像控件中,但我想要选择从文件系统中删除文件。问题是我一直收到这个错误:

"该过程无法访问该文件&c; \ 38.gif'因为它正在被另一个进程使用。"

这是我的代码(VB.NET,但C#解决方案也会有所帮助!):

'加载图片

Dim bitmap1 as New BitmapImage
bitmap1.BeginInit()
bitmap1.UriSource = New Uri("c:\38.gif", UriKind.Absolute)
bitmap1.EndInit()
Image1.Source = bitmap1.Clone

然后如果用户点击一个按钮,我想删除这个特定的文件:

Image1.Source = Nothing
File.Delete("c:\38.gif")

任何人都知道如何加载图像但仍能删除源文件??

非常感谢提前!

2 个答案:

答案 0 :(得分:1)

添加

bitmap1.CacheOption = BitmapCacheOption.OnLoad;

在BeginInit()

之后

答案 1 :(得分:0)

Trevor Sullivan在评论中所包含的链接让我得出答案。以下是处理类似问题的任何人的代码。

    bitmap1 = New BitmapImage

    Using photoStream As System.IO.FileStream = New System.IO.FileStream(currentfile, FileMode.Open, FileAccess.Read)
        bitmap1.BeginInit()
        Using reader As New BinaryReader(photoStream)
            'copy the content of the file into a memory stream
            Dim memoryStream = New MemoryStream(reader.ReadBytes(CInt(photoStream.Length)))
            'make a new Bitmap object the owner of the MemoryStream
            bitmap1.StreamSource = memoryStream
        End Using
        bitmap1.EndInit()
        leimage.Source = bitmap1
        photoStream.Dispose()

    End Using