我有一个名为PB_Company_Logo
的图片框,我有一个名为btn_Save
的按钮,在此按钮中我有function
这样可以将图片保存在PB_Company_Logo
到{{1} }}
current_directory/images
问题是,在某些情况下,用户会上传新的Public Sub save_PB(PB_Name As PictureBox)
Dim filename As String = "company_logo.png"
Dim path As String = Directory.GetCurrentDirectory() & "\images"
Dim filename_path As String = System.IO.Path.Combine(path, filename)
If (Not System.IO.Directory.Exists(path)) Then
System.IO.Directory.CreateDirectory(path)
PB_Name.Image.Save(filename_path)
Else
PB_Name.Image.Save(filename_path)
End If
End Sub
。我希望系统将新图像的上传视为替换以前的company_logo.png
。
我认为此行代码中的错误意味着该文件当前处于使用状态company_logo.png
,因此无法替换。
(locked)
答案 0 :(得分:0)
当您使用图像文件加载pictureBox控件时,ide(vs)会锁定文件。当您在设计时将pictureBox控件的image属性设置为文件时会发生这种情况。
您可以使用FileStream对象。 例如:
Dim fs As System.IO.FileStream
' Specify a valid picture file path on your computer.
fs = New System.IO.FileStream("C:\WINNT\Web\Wallpaper\Fly Away.jpg",
IO.FileMode.Open, IO.FileAccess.Read)
PictureBox1.Image = System.Drawing.Image.FromStream(fs)
fs.Close()
完成解决方法后,您可以使用System.IO.File.Exists(img)
命名空间检查图片是否存在。
示例:这将检查传入的图像是否已经存在,如果存在,则会替换它。
Dim imageStr As String = "~/images/name.jpg"
If System.IO.File.Exists(imageStr) Then
Image1.ImageUrl = "~/images/name.jpg"
End If