Hi,
ich probiere jetzt schon seit Tagen rum. Ich lade ein Bild in mein Programm und will es während das Programm läuft löschen und gegen ein neues Ersetzen. Nun bekomme ich immer den Fehler, dass die Datei grade genutzt wird. Wie schaffe ich es die Verbindung zu trennen, damit ich das Bild löschen kann und durch ein neues ersetzen kann ?
Vielen Dank
mafis90
Hallo,
du musst alle Streams zum Bild schließen, sonst kann es nicht ersetzt werden.
Wenn du den StreamReader benutzt:
StreamReader read = new StreamReader("bild.bmp");
// Auslesen des Bildes
read.Close(); // <- Den Stream wieder schließen.
// Erst jetzt kann das Bild ersetzt werden.
Du hast wahrscheinlich die Image-Klasse benutzt. Man kann die Methode Image.Dispose() aufrufen, um den Stream zu schließen.
Also Image.Dispose() ist nicht dazu da, den Stream zu schließen, sondern um das eingeladene Bild aus dem Speicher freizugeben. Aber sonst musst du den Stream, mit dem du Bild eingelesen hast closen(wie vorher schon geschrieben) und danach dein neues Bild mit dem gleichen Namen und einem neuen Stream speichern.
„Heute back ich, morgen brau ich,
übermorgen cast ich die Königin nach int;
ach, wie gut dass niemand weiß,
dass ich Rumpelstilzchen heiß!“
"Bei Stylefragen sollteste nen Mac-User oder ne Frau fragen."
Hallo mafis90,
das Thema wurde schon oft besprochen. Bitte benutze die Forumssuche und poste die besten Treffer hier. Vielen Dank!
herbivore
Hallo mafis90,
du solltest (laut dem Buch 'C# von Kopf bis Fuß') zum lesen/schreiben von Dateien using
verwenden. Dann wird der Stream bei }
geschlossen.
mfg.
markus111