Entwickler-Ecke

IO, XML und Registry - Dateizugriff nicht möglich - von anderem Prozess verwendet


MitgliedsnameUnbekannt - Fr 01.11.13 10:29
Titel: Dateizugriff nicht möglich - von anderem Prozess verwendet
Guten Morgen (:

Ich erstelle eine leere Datei und füge sie dann dem Projekt zu.



C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
//Datei erstellen
dateiPfad = Path.Combine(ordner, bezeichnung);
File.Create(dateiPfad);

//Datei hinzufügen
EnvDTE.Project project = m_Solution.Projects.Item(1);
EnvDTE.ProjectItem projectItem = project.ProjectItems.AddFromFile(dateiPfad);


Später im Code, möchte ich etwas in die Datei reinschreiben, bzw. das geöffnete Fenster in der Datei speichern:


C#-Quelltext
1:
m_Solution.DTE.ActiveDocument.Save(dateiPfad);                    


Beide Funktionen funktionieren an sich nur bekomme ich bei der Save-Funktion die Fehlermeldung, dass ich auf die Datei "dateiPfad" nicht zugreifen kann, weil sie bereits in einem anderen Prozess verwendet wird.
Aber der Prozess ist doch beendet nachdem ich die Datei erstellt habe? Sie ist nirgends geöffnet, kein Stream läuft...
Warum diese Fehlermeldung?

(Es geht hierbei um ein Add In für Visual Studio.)


Moderiert von user profile iconChristian S.: Topic aus Basistechnologien verschoben am Fr 01.11.2013 um 11:50


Th69 - Fr 01.11.13 11:15

Hallo,

File.Create gibt dir einen FileStream auf die Datei zurück, d.h. diese mußt du erst wieder schließen:

C#-Quelltext
1:
2:
3:
using (FileStream filestream = File.Create("dateiPfad"))
{
}

Bitte aber zuerst immer die Hilfe (MSDN) bemühen: File.Create [http://msdn.microsoft.com/de-de/library/d62kzs03%28v=vs.110%29.aspx]
MSDN hat folgendes geschrieben:
Die Datei wird mit Lese- und Schreibzugriff geöffnet und muss geschlossen werden, bevor sie von einer anderen Anwendung geöffnet werden kann.


MitgliedsnameUnbekannt - Fr 01.11.13 11:18

oh dann habe ich schlecht gegooglet.
Danke! :angel: