Benutzer mit den meisten Antworten
Geöffnetes Bild löschen

Frage
-
Hallo,
ich arbeite gerade an einem PictureViewer. Ich will nun eine Funktion "Bild löschen" einfügen. Allerdings zeigt VB immer an, die Datei wird nicht gefunden.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles deleteButton.Click Kill(OpenFileDialog1.FileName) End Sub
Björn
Antworten
-
Hallo Björn,
liefere uns bitte exakte Details zu der Exception, die Du bekommst. Die Exception enhält sehr genaue Infos zu den Gründen, warum die Datei nicht gefunden werden kann. Wenn wir die hier kennen, können wir Dir auch zielführend helfen, statt im Nebel zu stochern. Ebenso interessant wäre, wie Du das Bild anzeigst.
In folgendem Beispiel kann der Anwender über den OpenFileDialog eine Datei zum Öffnen auswählen und diese wird dann über die ImageLocation Eigenschaft von der PictureBox geladen. Diese Eigenschaft kann auch verwendet werden, um den Pfad- und Dateinamen später beim Löschen abfragen zu können:
Public Class Form1 Private Sub btnOpen_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles btnOpen.Click OpenFileDialog1.Filter = "Bilder|*.bmp;*.jpg;*.png;*.gif" If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then PictureBox1.ImageLocation = OpenFileDialog1.FileName End If End Sub Private Sub btnDelete_Click(ByVal sender As Object, _ ByVal e As System.EventArgs _ ) Handles btnDelete.Click Try Dim lPath As String = PictureBox1.ImageLocation If Not String.IsNullOrEmpty(lPath) Then System.IO.File.Delete(PictureBox1.ImageLocation) PictureBox1.ImageLocation = Nothing End If Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly) End Try End Sub End Class
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de- Bearbeitet Thorsten Dörfler Donnerstag, 24. Juni 2010 22:50 Codebeispiel
- Als Antwort vorgeschlagen Robert Breitenhofer Dienstag, 29. Juni 2010 15:20
- Als Antwort markiert Thorsten Dörfler Dienstag, 13. Juli 2010 10:23
Alle Antworten
-
Hallo Björn,
http://msdn.microsoft.com/de-de/library/tdx72k4b(v=VS.80).aspx
Loschen einer Datei. Du must auch einen path setzen. Default path ist der, aus welcher die Anwendung gestartet wird.
schöne Grüße Ellen
Ich benutze/ I'm using VB2008 & VB2010 -
Hallo Björn,
ich arbeite gerade an einem PictureViewer. Ich will nun eine Funktion "Bild löschen" einfügen. Allerdings zeigt VB immer an, die Datei wird nicht gefunden.
wie wärs mit dem hier?
http://msdn.microsoft.com/de-de/library/system.io.file.delete.aspx
Ok, grad nachgeschaut, Kill würde also auch gehen.
Aber eine FileNotFoundException sagt eigentlich nicht, dass die Datei geöffnet ist. Von daher würde ich mal drauf tippen, dass Du den falschen Pfad übergibst.
Was genau steht bei dir denn in OpenFileDialog1.FileName? Ggfs. einen Leerstring?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo Björn,
liefere uns bitte exakte Details zu der Exception, die Du bekommst. Die Exception enhält sehr genaue Infos zu den Gründen, warum die Datei nicht gefunden werden kann. Wenn wir die hier kennen, können wir Dir auch zielführend helfen, statt im Nebel zu stochern. Ebenso interessant wäre, wie Du das Bild anzeigst.
In folgendem Beispiel kann der Anwender über den OpenFileDialog eine Datei zum Öffnen auswählen und diese wird dann über die ImageLocation Eigenschaft von der PictureBox geladen. Diese Eigenschaft kann auch verwendet werden, um den Pfad- und Dateinamen später beim Löschen abfragen zu können:
Public Class Form1 Private Sub btnOpen_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles btnOpen.Click OpenFileDialog1.Filter = "Bilder|*.bmp;*.jpg;*.png;*.gif" If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then PictureBox1.ImageLocation = OpenFileDialog1.FileName End If End Sub Private Sub btnDelete_Click(ByVal sender As Object, _ ByVal e As System.EventArgs _ ) Handles btnDelete.Click Try Dim lPath As String = PictureBox1.ImageLocation If Not String.IsNullOrEmpty(lPath) Then System.IO.File.Delete(PictureBox1.ImageLocation) PictureBox1.ImageLocation = Nothing End If Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly) End Try End Sub End Class
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de- Bearbeitet Thorsten Dörfler Donnerstag, 24. Juni 2010 22:50 Codebeispiel
- Als Antwort vorgeschlagen Robert Breitenhofer Dienstag, 29. Juni 2010 15:20
- Als Antwort markiert Thorsten Dörfler Dienstag, 13. Juli 2010 10:23
-
Hallo Björn96,
tausche doch einfach mal deinen Kill-Befehl gegen:
MsgBox(OpenFileDialog1.FileName)
was liefert dir dann die MessageBox?
Es ist vielleicht ein sehr primitiver Ansatz mit dem ich da meine Anweisungen immer prüfe, aber grundsätzlich kannst du davon ausgehen, dass dein Kill-Befehl für eine Variable funktioniert, wenn die Variable schlüssig ist.
Wenn du natürlich nur den Namen z.B. ohne Pfad übergibst, kann das nicht klappen. Das ist dann so als würde der Postbote an der Klingel Hauptstraß 11 läuten.Aber welcher Ort?
Liebe Grüße Stefan