Xardas008 - Do 08.11.07 17:50
Titel: Probleme beim Schreiben in eine Datei
Hallo,
folgenden Code habe ich geschrieben:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| try { if(!File.Exists(path)) { File.Open(path,FileMode.Create); using (StreamWriter text = File.CreateText(path)) { text.WriteLine(vorname); text.WriteLine(nachname); text.WriteLine(strasse); text.WriteLine(hausnummer); text.WriteLine(ort); text.WriteLine(nummer); text.WriteLine(vorwahl); text.WriteLine(plz); } } else { File.Open(path,FileMode.Append); usw. |
So wenn ich das ganze jetzt ausführe, und speichere (Nachdem eine Adresse angelegt wurde sprich die Felder gefüllt sind, was aber vom Prinzip jetzt egal wäre), dann erhalte ich eine Exception (habe sie in obigen beispiel nicht aufgeführt, gebe sie lediglich auf dem Bildschirm aus), die wiefolgt lautet: Der Prozess kann nicht auf die Datei D:\Test.txt zugreifen, da sie von einem anderen Prozess verwendet wird.
Als ich sie noch nicht abgefangen habe, konnte ich herauslesen, dass es sich um eine Zugriffsverletzung handelt. Laut Hilfe ist dafür der Namespace System.Security.Permissions zuständig. Nur leider habe ich keine Idee, wie genau dies dann aussehen müsste.
Könnte mir einer ein Muster liefern, mit dem ich diesen Laufzeitfehler beheben kann?
Danke schonmal jetzt
Gruß
Moderiert von
Christian S.: "CSHARP" durch "cs" ersetztModeriert von
Christian S.: Topic aus Sonstiges (C# / .NET) verschoben am Do 08.11.2007 um 17:52
Xardas008 - Do 08.11.07 18:15
Christian S. hat folgendes geschrieben: |
| Du erzeugst mit File.Open einen FileStream, welcher auf die Datei zugreift. File.CreateText versucht eine neue Datei zu erstellen, was nicht geht, weil der FileStream noch drauf zugreift. Du brauchst das File.Open nicht. |
Danke dir, funktioniert.
Naja war mein erstes mal dass ich mit C-Sharp eine Datei erstellt habe und in sie hineingeschrieben habe.
Und danke für das Verbessern meines Codeblocks, wusste nicht genau wie das genau hieß und hab die erste Möglichkeit genommen die mir einfiel, musste dann aber essen gehen.