Autor Beitrag
Xardas008
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win 7 Professional x64, Ubuntu 10.04, Windows Server 2008 R2
C#, Visual Studio 2008 Pro, Visual Studio 2010 Ultimate, Eclipse (Java)
BeitragVerfasst: Do 08.11.07 18:50 
Hallo,

folgenden Code habe ich geschrieben:

ausblenden 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 user profile iconChristian S.: "CSHARP" durch "cs" ersetzt
Moderiert von user profile iconChristian S.: Topic aus Sonstiges (C# / .NET) verschoben am Do 08.11.2007 um 17:52
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 08.11.07 18:53 
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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Xardas008 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win 7 Professional x64, Ubuntu 10.04, Windows Server 2008 R2
C#, Visual Studio 2008 Pro, Visual Studio 2010 Ultimate, Eclipse (Java)
BeitragVerfasst: Do 08.11.07 19:15 
user profile iconChristian 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.