Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Informatik in der Schule (http://www.informatikerboard.de/board/board.php?boardid=21)
--- C# IO Exeption (http://www.informatikerboard.de/board/thread.php?threadid=1419)


Geschrieben von InformaTiger am 17.03.2013 um 14:37:

  C# IO Exeption

Hallo,
bei folgendem Code:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
 
if (aEmpfaengerName == aBenutzername)
{
      lblNachricht.Visible = true;
      lblNachricht.Text = "Sie haben eine Message erhalten!";
      MessageBox.Show(aMessageContent);
      lblNachricht.Visible = false;
      File.Delete(@"\tailor_software_userdata\messages\Message.txt");
}


kommt folgende Fehlermeldung:

IOExeption wurde nicht behandelt.

Zitat:
Der Prozess kann nicht auf die Datei "E:\tailor_software_userdata\messages\Message.txt" zugreifen, da sie von einem anderen Prozess verwendet wird.


Kann mir jemand sagen warum diese Fehlermeldung kommt, von welchem Prozess diese Datei in Anspruch genommen wird und wie ich dies unterbinden kann? unglücklich

Falls dieser Code nicht genug ist kann ich den Rest gerne auch noch anhängen.
Danke. Wink

Lg
InformaTiger



Geschrieben von Karlito am 17.03.2013 um 15:18:

 

Guckst du hier: http://superuser.com/questions/117902/easy-way-to-find-out-which-process-is-locking-a-file-or-folder-in-windows

Schau halt wer das Lock hält und schau ob du da was dagegen tun kannst.

VG,

Karlito



Geschrieben von InformaTiger am 17.03.2013 um 16:11:

 

Leider habe ich das hier nicht so gut verstanden. unglücklich
Kannst du mir bitte ein Beispiel machen, wie ich das heraus finden kann?

Lg
InformaTiger



Geschrieben von Karlito am 17.03.2013 um 16:43:

 

Hi,

mit http://www.dr-hoiby.com/WhoLockMe/ kannst du im Windows-Explorer per Kontext-Menu herausfinden, welches Programm auf die Datei zugreift. Ich weiß leider nicht, ob es auch unter Windows 7 oder 8 Funktioniert...

Mit http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx kannst Du herausfinden, wer die Datei benutzt (welcher Prozess). Dazu im find-menu einfach den Dateinamen angeben.

VG,

Karlito



Geschrieben von InformaTiger am 17.03.2013 um 17:19:

 

Ok, das habe ich jetzt versucht, habe auch den Prozess gefunden nur weiß nicht wie ich unterbinden soll dass das vshost.exe von meinem eigenen Programm darauf zugreift. Das Programm gibt mir folgendes aus:

Zitat:
Process: 130311UeMulifunktionenFenster.vshost.exe PID: 5712 Type: File Name: E:\tailor_software_userdata\messages\LastActivity.txt


Ich stell mich hier noch einwenig ungeschickt an... unglücklich

Lg
InformaTiger



Geschrieben von Karlito am 17.03.2013 um 17:35:

 

Ist 130311UeMulifunktionenFenster.vshost.exe dein Programm?



Geschrieben von InformaTiger am 17.03.2013 um 17:48:

 

Nein, aber das vshost.exe ist von meinem Programm....
verwirrt

Also das heißt dass mein vshost.exe von meinem Programm die Datei LastActivity.txt unter den Nagel reißt und deshalb mein Programm nicht darauf zugreifen kann.

Lg
InformaTiger



Geschrieben von Karlito am 17.03.2013 um 18:02:

 

Glaube ich nicht. Wenn ich mich nicht täusche heißt das programm nicht nur vshost.exe sondern 130311UeMulifunktionenFenster.vshost.exe. Finde doch mal heraus was das für ein Programm ist und was es macht.



Geschrieben von InformaTiger am 17.03.2013 um 18:28:

 

Zitat:
Original von Karlito
Glaube ich nicht. Wenn ich mich nicht täusche heißt das programm nicht nur vshost.exe sondern 130311UeMulifunktionenFenster.vshost.exe.[...]


Ja das schon, es heißt auch mit vollem Namen 130311UeMulifunktionenFenster.vshost.exe.
Nur es ist eben auch von Visual Studio 2012, mit dem ich mein Programm geschrieben habe erzeugt worden. Nur leider habe ich keinen Plan was es macht und auch nicht wie ich das herausfinden kann. unglücklich


Lg
InformaTiger



Geschrieben von InformaTiger am 18.03.2013 um 17:33:

 

Heute habe ich das Problem gelöst. Es hat sich damit erledigt das ich im Code (der nebenbei hier nie erwähnt wird) den StreamReader vergessen habe zu schließen und das jetzt nachgeholt habe.

code:
1:
LoadData.Close();


Vielen Dank trotzdem. großes Grinsen

PS: Es isch schon eine Kunst für sich den anderen Boardteilnehmern genau zu erklären was effektiv das Problem ist...

Lg
InformaTiger


Forensoftware: Burning Board, entwickelt von WoltLab GmbH