Hallo, ich möchte in meinem VB.net Programm eine generierte Textdatei per Mail versenden. Klappt soweit, nur kann ich danach die Datei wieder überschreiben oder löschen wegen einer unbehandelten Ausnahme (Prozess kann nicht auf Datei "test.txt" zugreifen, da diese in Verwendung ist). Hier ein Codeausschnitt:
Imports System.io
Private Sub btnSenden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSenden.Click Using sw As StreamWriter = New StreamWriter("test.txt") sw.WriteLine("mein Text") sw.Close() End Using 'Versenden der Mail...' File.Delete("test.txt") End sub
Wie kann ich erreichen, die Datei zu überschreiben oder zu löschen ohne das Programm neu zu starten? Ich verwende VB.net express 2008, WinXP.
Ich vermute mal, die MailMessage ist nicht in ein Using eingeschlossen, somit wird der intern erzeugte FileStream nicht disposed, somit bleibt die Datei im Zugriff.
Wenn du die Datei als Attachment versenden möchtest, warum speicherst du die überhaupt auf Platte?
Die Verwendung von using zum Schreiben der Datei gibt die Datei ja nachher quasi frei. Folglich klappt der Versand. Vermutlich blockiert der Versand der Email die Datei, aber genau dazu gibt es kein Code-Beispiel...