Nachdem mein app.config-Problem gelöst ist, nun das nächste. IMHO ist es gut, das es mich gleich hier zu Beginn trifft.
Mein Programm möchte eine neue Datei erstellen. Der Benutzer kann vorgeben, wo diese Datei erstellt werden soll und zum Glück meinte ich als DAU: Mach mal in C:\. Nun, seit Vista ist das ja nicht mehr so einfach, mal eben ne Datei in C:\ zu erstellen und erwartungsgemäß bekomme ich eine NotAuthorizedException um die Ohren.
Nun, wie bekomme ich denn diese Datei nun erstellt ? Vollzugriff auf C:\ einstellen ist natürlich keine Option (und hat auch nicht geholfen, just for Info). Folgender Programmcode ist nicht tauglich:
C#-Quelltext
1: 2: 3:
| FileSecurity filesecurity=new FileSecurity(BackupFileName, AccessControlSections.All); fsOut=File.Create(BackupFileName,4096,FileOptions.None,filesecurity); zipStream = new ZipOutputStream(fsOut); |
Um Security-Attributes festzulegen, muß die Datei existieren - tut sie aber nicht, weil ich sie ja erst erstellen will. Das typische Katze->Schwanz-Problem. Was muß ich tun, um meine Datei trotzdem erstellt zu bekommen - unbeachtlich der Tatsache, das C:\ wirklich kein guter Ort ist, aber nicht zu verhindern ist ?
Lies, was da steht. Denk dann drüber nach. Dann erst fragen.