Der Prozess kann nicht auf die Datei zugreifen, 'x', denn es wird von einem anderen Prozess verwendet beim löschen gespeicherte Bild durch Anwendung
m ein Anfänger n entwerfen einer test-Anwendung zu speichern image auf der Festplatte und seinen Namen in der sql Tabelle.
Ich bin in der Lage zu speichern, navigieren Sie durch die Datensätze, aber nicht in der Lage, um das Bild zu löschen.
es gibt mir Fehler
Der Prozess kann nicht auf die Datei zugreifen, 'x', denn es wird von einem anderen Prozess verwendet beim löschen Bild
der code ist wie folgt:
Private Sub btnDelete_Click(ByVal Absender Als System.Gegenstand, ByVal e Als System.EventArgs) Handles btnDelete.Klicken Sie auf
isProcName = "btnDelete_Click"
OBJ = New 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
Habe ich versucht Entsorgung Bild und aus dem Bild-Feld und laden ein weiteres Bild-in-Bild-box
auch m nicht mit jedem file-Objekt für das öffnen der Datei nur das Bild Klasse Aus Datei-Methode.
jede Hilfe wird dankbar sein
Danke
entsorgen hat nicht funktioniert. Es ist nicht entsorgen, das Bild war immer noch benutzt worden, aber als ich versuchte manuell zu löschen, insbesondere Bild, das ich zeigte mir eine Fehlermeldung, dass die Datei schon verwendet "vshost.exe" das ist meine Bewerbung selbst. So habe ich Stream-Datei laden, Bild-in-Bild-box, wie schon gesagt, von James, aber es gab mir noch Fehler, wenn ich versucht zu löschen jedes Bild mit dem folgenden code:
Datei.Löschen("D:\EmpImages\" & iiImageNo & ".jpg")
Datei.Löschen("D:\EmpImages\" & iiImageNo & ".jpg")
also habe ich versucht, dieses
Dateisystem.Kill("D:\EmpImages\" & iiImageNo & ".jpeg")
und es funktionierte.
danke james und alle, die gab es kostbare Zeit für mich
nicht sicher, warum dies ist markiert mit C#. es ist alles vb.net code.
InformationsquelleAutor Pratik | 2013-06-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Bild-Feld wohl noch nicht freigegeben hat das Bild durch die Zeit, die Sie versuchen, es zu löschen von der Festplatte, ein zuverlässiger Ansatz wäre es, laden Sie das Bild von einem
Stream
z.B.Dies würde verhindern, dass jede Art von sperren auf die Datei.
Scheint es zu sein, eine häufiges problem.
Klar das Bild hat immer noch eine Sperre auf es irgendwo, der code, den ich geposted habe nicht die Datei sperren nach unten, so kann ich nur annehmen, dass du das öffnen der Datei an anderer Stelle und schließt nicht ganz richtig.
Ich verbrachte zwei Stunden versucht, Prozesse killen und nichts klappte...kam über diese und viola...ich dachte, ich war unter verrückten Pillen.
InformationsquelleAutor James
Erklärt ist das in die Dokumentation für
"Bild".FromFile
:picEmp.Image.Dispose()
und auch eindeutig fest, "ich habe versucht, Entsorgung und Bild vom Bild-Feld".Aber natürlich ist das entsorgen der alten "Bild".
Yep, so deutlich die OP versteht sich, dass das Bild hat zu entsorgen, bevor Sie ihn löschen können, das Problem scheint zu sein, wie der OP tun kann, gerade, Sie zu verknüpfen, um die Dokumentation zu wiederholen, dass es nicht hilft.
Punkt getroffen.
InformationsquelleAutor Raymond Chen
InformationsquelleAutor TOM