在我的应用程序中,如果用户将文件保存到他们没有权限的文件夹,File.Copy则会失败.一个示例是将文档保存到C:\ root.
我不想拒绝访问,而是提示用户使用UAC提示提升权限,但仅限于此保存功能(不适用于整个应用程序).有没有办法做到这一点?
总之......不.
需要提升整个过程,并且需要在启动时进行升级.然而!您可以创建单独的流程来完成此工作.创建一个单独的.exe只执行此工作,并在命令行参数中获取所需的一切.您可以将动词添加到将导致其提升的进程中:
Process p = new Process();
p.StartInfo.FileName = "copy.exe";
p.StartInfo.Arguments = new [] { pathFrom, pathTo };
p.Verb = "runas";
p.Start();
Run Code Online (Sandbox Code Playgroud)
这样的东西......