Я не могу создать файл в папке «Program Files» на моем 64-разрядном компьютере с Windows 7 в коде VS 2008 WPF C #. Ошибка я получаю по следующему коду
myFile = File.Create(logFile);
следующее. (это трассировка стека innerException).
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.File.Create(String path)
at MyFirm.MyPricingApp.UI.App.InitializeLogging() in C:\Projects\MyPricingApp\App.xaml.cs:line 150
at MyFirm.MyPricingApp.UI.App.Application_Startup(Object sender, StartupEventArgs e) in C:\Projects\MyPricingApp\App.xaml.cs:line 38
at System.Windows.Application.OnStartup(StartupEventArgs e)
at System.Windows.Application.<.ctor>b__0(Object unused)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
Похоже, что это как-то связано с UAC в Windows 7, потому что зачем мне еще это получать, так как мой пользователь уже является администратором на машине?!
Кроме того, поскольку WinIOError имеет SECURITY_ATTRIBUTES, я думаю, что это как-то связано с безопасностью «по-новому», которая обрабатывается в Windows 7.
Я попытался перейти к папке «Program Files», в которой должны были быть созданы папка и файл журнала. Я могу создать папку вручную, но когда я пытаюсь создать файл, я получаю аналогичное исключение «Отказано в доступе».