Entwickler-Ecke

C# - Die Sprache - Fehler bei Dateizugriff


Spot - Do 14.06.07 09:55
Titel: Fehler bei Dateizugriff
Hallo zusammen der Spot mal wieder ;-)

Folgendes ist gegeben:
starte mein Program und überprüfe ob eine Datei vorhanden ist,
sollte dies nicht der Fall sein soll ein neuer Ordner und die
Datei erzeugt werden.

C#-Quelltext
1:
2:
Directory.CreateDirectory("Pfad");
File.Create("Pfad");

Funktioniert soweit auch alles wunderbar, erzeugt den Ordner und
die Datei.
So beim beenden möchte ich dann auf die oben erzeugt Datei zugreifen
und drin schreiben.
Dabei kommt es dann zu einem Fehler, das auf die Datei nicht zugegriffen
werden kann, da ein anderer Prozess die Datei noch verwendet.

Meine Vermutung war jetzt das

C#-Quelltext
1:
File.Create("Pfad");                    

noch auf die Datei verweist bzw. wie die Exception es ausgibt noch verwendet.

Daher meine Frage jetzt gibt es da eine Möglichkeit diesen Zugriff von

C#-Quelltext
1:
File.Create("Pfad");                    

auf die Datei zu "beenden"???

Danke für eure Hilfe ...

Gruß Spot


UGrohne - Do 14.06.07 10:12

Create gibt ein Objekt vom Typ FileStream zurück, die Datei bleibt geöffnet, wie Du schon richtig vermutet hast. Zwei Möglichkeiten hast Du nun, wobei ich die zweite nehmen würde ;):
  1. Du schließt die Datei wieder, indem Du direkt Close aufrufst, z.B. so File.Create(dateiname).Close().
  2. Oder Du nimmst eine globale Variable her, mit der Du den FileStream offen hältst und am Ende direkt verwendest.


Spot - Do 14.06.07 11:43

werd ich dann gleich mal ausprobieren ...

Danke für die schnelle Hilfe!

Gruß Spot