StreamWriter Problem

Hallo,

kann mir jemamd Helfen?
Visaul Basic 2005 zeigt mir mit diesem Code keinen Fehler, aber in die Datei archiv.txt wird trotzdem nichts geschrieben.
woran könnte dies liegen?


Class Test
Public Shared Sub Main()
Using sw As IO.StreamWriter = New IO.StreamWriter("C:\archiv.txt")

' Inhalt der Datei.
sw.Write("Dies ist ein ")
sw.WriteLine(" Test.")
sw.WriteLine("................")
sw.Close()
End Using

End Sub

MFG
Scheuerich
End Class
 
Zuletzt bearbeitet:
Using kümmert sich automatisch um das Schließen eines Streams. Das Close() kannst du also wegnehmen. Eventuell verwendest du stattdessen ein Flush().
 
Wird die Datei überhaupt angelegt? Nach meinem Verständnis müsste der Backslash doppelt geschrieben werden, also "C:\\archiv.txt" (oder ist das bei VB anders als bei C#?).

Gruß
MCoder
 
Hallo,

weder mit

Flush ()

noch mit doppel Backslash funktionierts.

Die Datei wird nicht von selbst erstellt.
Wenn ich die Datei von Hand erstelle, bleibt sie leider trotzdem leer.
 
Soweit ich weiß ist der Konstruktor überladen und du kannst noch einen Parameter angeben in dem du "OpenOrCreate" oder nur "Create" angibst. Falls das nicht geht versuchs mal mit dem system.io.filestream

Bin mir aber nicht sicher!
 
hi


Auch mit Slash funktionerits leider nicht. Das erstellen wäre nicht das problem könnt ich ja von Hand machen.

zu Klein0r, jetzt bin ich etwas überfordert.

wie müsse mein Code dann aussehen mit system.io.filestream?
 
Hi,

ich bin immo auf der Arbeit und kann dir deswegen leider kein konkretes Beispiel als code hier Posten! Evt hilft dir ja in der Zeit das msdn weiter - etwas weiter unten is auch nen codebeispiel! Genau das was du jetz machst habe ich in meinem aktuellen Projekt aber auf jeden Fall schon funktionierend eingesetzt! Also ich schau von zu Hause um kurz nach 5 hier wieder rein, und werde dir dann meinen Codeauschnitt posten falls du noch Probleme hast :)

http://msdn2.microsoft.com/en-us/library/system.io.filestream.aspx

Ansonsten habe ich das gerade noch gefunden:

Code:
' ============================
' .NET-Code-Beispiel in Visual Basic .NET
' Schreiben einer Protokolldatei
' (C) Holger@Schwichtenberg.de
' ============================
Public Sub datei_schreiben()
Const DATEINAME As String = _
"d:\buch\dateisystem\protokoll.txt"

' --- Datei öffnen
Dim fs As FileStream = New FileStream( _
DATEINAME, FileMode.OpenOrCreate, _
FileAccess.Write)

' --- Stream öffnen
Dim w As StreamWriter = New StreamWriter(fs)
' --- Anfügen am Ende
w.BaseStream.Seek(0, SeekOrigin.End)
' --- Zeilen schreiben
w.WriteLine("Start des Programms: " & now)
' --- Einzelne Zeichen schreiben
Dim a As Integer
For a = 1 To 26
w.Write(chr(96 + a))
Next
w.WriteLine()
' --- Zeilen schreiben
w.WriteLine("Ende des Programms: " & now)
' --- Writer und Stream schließen
w.Close()
fs.Close() 
End Sub
 
Hallo,

weder mit

Flush ()

noch mit doppel Backslash funktionierts.

Die Datei wird nicht von selbst erstellt.
Wenn ich die Datei von Hand erstelle, bleibt sie leider trotzdem leer.
Falls sie noch nicht existiert, sollte die Datei eigentlich angelegt werden. Evt. geht schon bei der Konstruktion des StreamWriter-Objekts irgendwas schief. Hast du mal den Debugger über die Stelle laufen lasen und geschaut, ob irgendwelche Exceptions geworfen werden?

Gruß
MCoder
 
Zurück