我有这个非常奇怪的问题,想看看你们能不能在这里给我一些建议。我想从特定的文件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")
任何人都知道如何加载图像但仍能删除源文件??
非常感谢提前!
答案 0 :(得分:1)
添加
bitmap1.CacheOption = BitmapCacheOption.OnLoad;
答案 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