Entwickler-Ecke
IO, XML und Registry - Rechte Problem / löschen einer Datei im OnClosing Ereignis
zappo - So 12.07.09 19:47
Titel: Rechte Problem / löschen einer Datei im OnClosing Ereignis
Hierher scheint mein Problem besser zu passen.
Folgender Code erzeugt bei mir eine Exception, hinter deren Lösung ich leider nicht komme...
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| protected override void OnClose(CancelEventArgs e) { e.Cancel = true; FileInfo fileinfo = new FileInfo("wr_bak.xml"); fileinfo.Attributes |= FileAttributes.Normal; File.Delete("wr_bak.xml"); Close(); return; } |
leider gibt es dann beim löschen der Datei ne UnauthorizedAccess Exception.
An anderer Stelle im Programm macht das löschen selbiger Datei allerdings kein Problem, woran könnts liegen?
Weiß jemand Rat?
Gruß
Sebastian
Moderiert von
Christian S.: Quote- durch C#-Tags ersetztModeriert von
Christian S.: Topic aus C# - Die Sprache verschoben am So 12.07.2009 um 19:58
JüTho - So 12.07.09 20:00
Ich glaube das eher nicht. Dein Problem liegt wohl daran, dass du nicht das Ereignis selbst behandelst, sondern die protected Methode überschreibst, die das Ereignis auslöst. Das ist zumindest ungewöhnlich.
Übrigens gibt es unter "Bereiche" nicht nur Zitat, sondern auch die ComboBox mit den Code-Varianten, darunter C#, und dem Plus-Button. Code ist auf diese Weise zu markieren.
Vielleicht kann Sebastian Kha oder ein anderer WPF-Fachmann dies anschauen und entscheiden, wo und wie die Diskussion am besten geführt wird.
Jürgen
@Christian
Danke für die C#-Tags. Aber das Verschieben war mit Sicherheit unpassend, weil es sich vorrangig nicht um das IO-Problem handelt, sondern um das Zusammenspiel von Ereignissen und Methoden.
Ralf Jansen - So 12.07.09 20:22
Da du schon schreibst das du diese Datei auch an anderen Stellen benutzt gehe ich mal davon aus das du an einer dieser Stellen das File nicht richtig geschlossen hast und du somit noch ein Handle auf die Datei hälst. Sobald jemand eine Datei sperrt (das kann man auch selbst im eigenen Prozess sein) erhält man eine UnauthorizedAccessException wenn man diese zu löschen versucht.
Kontrolliert also mal an diesen Stellen ob du an das jeweils nötige Close(), Dispose() oder was auch immer gedacht hast.
zappo - Mo 13.07.09 00:20
Problem hat sich gelöst.
Lag daran das ich das ReadOnly des Files vorher EXKLUSIV entfernen musste.
Gruß
P.S.: Sry, hatte vergessen hier auch solved zu setzen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!