我试图在某些图像上释放文件锁定,这样我就可以将它们移动到存档文件夹中。
程序循环显示图像并将图片框添加到flowlayout面板。操作完成后,我处理了flowlayout面板,然后归档文件。
我的理解是,处理面板会处理其中的图片框,但是当我尝试移动操作时,我得到一个IOException Access Denied。
代码:
Dim ImagesInFolder As New List(Of Image)()
For Each JPEGImages As String In Directory.GetFiles(ExportDir.FullName, "*.jpg")
ImagesInFolder.Add(Image.FromFile(JPEGImages))
Next
Dim x As Integer = 0
Dim y As Integer = 0
For i As Integer = 0 To ImagesInFolder.Count - 1
Dim _image As New PictureBox()
_image.Location = New Point(x, y)
x += 50
_image.Image = ImagesInFolder(i)
_image.Size = New Size(50, 50)
_image.SizeMode = PictureBoxSizeMode.StretchImage
FlowLayoutPanel1.Controls.Add(_image)
Next
稍后在申请中:
FlowLayoutPanel1.Dispose()
Directory.Move(CurrentFolder, ArchiveFolder)
答案 0 :(得分:2)
问题在于使用Image.FromFile(file)
加载图片。
使用Image.FromStream
加载图片时,文件将被锁定。
为避免锁定文件,您可以使用Dim filePath = "path to your image file"
Dim contentBytes = File.ReadAllBytes(filePath)
Dim memoryStream As New MemoryStream(contentBytes)
Dim image= Image.FromStream(memoryStream)
YourPictureBox.Image = image
加载图片。
<强>代码:强>
.parents()