Rubrik: Grafik und Font · Bilder und Icons | VB-Versionen: VB.NET | 15.01.07 |
Blockierung von Bilddateien verhindern (VB.NET) Dieser Tipp zeigt, wie man verhindern kann, dass eine Bilddatei nach dem Einlesen in ein Bildfeld für weitere Dateizugriffe blockiert bleibt. | ||
Autor: Dieter Otter | Bewertung: | Views: 13.920 |
www.tools4vb.de | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Wussten Sie, dass Bilddateien, die wie folgt eingelesen werden, bis zur Zerstörung des Bitmap-Objekts für Schreib- und Löschzugriffe gesperrt bleiben?
PictureBox1.Image = New Bitmap("d:\bild.gif")
Nein? Dann probieren Sie es einfach einmal aus. Starten Sie die Anwendung und versuchen anschließend die Bilddatei zu löschen. Windows quittiert Ihnen den Löschversuch mit der Meldung "Datei kann nicht gelöscht werden, da sie von einer anderen Person bzw. einem anderen Programm verwendet wird."
Um die Blockierung der Datei zu verhindern, sollte man diese über ein Stream-Objekt einlesen:
' Stream-Objekt erstellen und Datei zum Lesen öffnen Dim oStream As New System.IO.FileStream("d:\bild1.gif", IO.FileMode.Open) ' Bitmap-Objekt mit den Daten aus dem Stream füllen PictureBox1.Image = New Bitmap(oStream) ' Stream-Objekt und somit auch die Datei schließen oStream.Close()
Sobald das Stream-Objekt geschlossen wurde, ist der Schreib-/Löschzugriff auf die Datei wieder möglich.