画像をハードディスクに保存し、その名前をSQLテーブルに保存するテストアプリケーションを設計する初心者です。保存してレコードをナビゲートすることはできますが、画像を削除することはできません。
それは私にエラーを与えます画像の削除中に別のプロセスによって使用されているため、プロセスはファイル 'x'にアクセスできません
コードは次のとおりです。
Private Sub btnDelete_Click(System.Object としての ByVal 送信者、System.EventArgs としての ByVal e) ハンドル btnDelete.Click isProcName = "btnDelete_Click" OBJ = 新しい clsImageStoring
Try
Dim result As DialogResult = MessageBox.Show(Me, "Do you really want to delete this Record?", "Query", vbYesNo, vbQuestion)
If result = Windows.Forms.DialogResult.Yes Then
iiId = DGV.Rows(iiRowno).Cells(0).Value
iiImageNo = DGV.Rows(iiRowno).Cells(1).Value
Dim liTempImageNo As Int64 = 0
If OBJ.Delete(iiId) Then
Fillgrid()
liTempImageNo = DGV.Rows(0).Cells(1).Value
picEmp.Image.Dispose()
picEmp.Image = Image.FromFile("D:\EmpImages\" & liTempImageNo & ".jpg")
'File.Delete("D:\EmpImages\" & iiImageNo & ".jpg")
FileIO.FileSystem.DeleteFile("D:\EmpImages\" & iiImageNo & ".jpg")
MessageBox.Show(Me, "Record Deleted Successfully", "Information", vbOKOnly, vbInformation)
End If
End If
Catch ex As Exception
clsLog.WriteException(ex, isModuleName, isProcName)
End Try
End Sub
画像と画像ボックスからの画像を破棄し、別の画像を画像ボックスにロードしようとしましたが、Image クラスの From file メソッドを除いて、ファイルを開くためにファイルオブジェクトを使用しませんでした。
どんな助けでも感謝しますありがとう
破棄は機能しませんでした。画像がまだ使用されている画像を破棄するのではなく、その特定の画像を手動で削除しようとすると、ファイルがアプリケーション自体である「 vshost.exe 」によって使用されているというエラーが表示されました。そのため、James から言われたようにファイル ストリームを使用して画像ボックスに画像をロードしましたが、次のコードで画像を削除しようとするとエラーが発生しました。
File.Delete("D:\EmpImages\" & iiImageNo & ".jpg")
File.Delete("D:\EmpImages\" & iiImageNo & ".jpg")
だから私はこれを試しました
FileSystem.Kill("D:\EmpImages\" & iiImageNo & ".jpeg")
そしてそれはうまくいきました。ジェームスと私のために貴重な時間をくれたみんなに感謝します