0

我将使用 C# 编程(我创建的“Win32”文件夹)将文件复制到 Windows 7 中的此路径(C:\Windows\Win32),但我不能。因为操作系统不允许我.所以我需要完全访问。我写这段代码是为了解决这个问题,但我在程序运行中看到这个错误:“试图执行未经授权的操作。” . 请帮我 !!!。谢谢

using System.IO;
using System.Security.AccessControl;
using System.Management;
using System.Management.Instrumentation;

 1. private void Sample2_Click(object sender, EventArgs e)
 2. {
 3.    System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"C:\Windows\Win32");
 4.    FileSystemAccessRule fsar = new FileSystemAccessRule("Users", FileSystemRights.FullControl, AccessControlType.Allow);
 5.    DirectorySecurity ds = null;
 6.    if (!di.Exists)
 7.    {
 8.       System.IO.Directory.CreateDirectory(@"C:\Windows\Win32");
 9.    }
 10.    ds = di.GetAccessControl();
 11.    ds.AddAccessRule(fsar);
 12.    di.SetAccessControl(ds);
 13.    File.Copy(@"C:\Users\Public\Pictures\Sample Pictures\Desert.jpg", @"C:\Windows\Win32\Desert.jpg");
 14.    MessageBox.Show("successfully copy!!!!");
 15. }
4

1 回答 1

0

您需要在启动应用程序时触发 UAC。

将此 XML 嵌入到您的清单文件中

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
   <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
     <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
       <security>
         <requestedPrivileges>
           <requestedExecutionLevel
             level="asInvoker"
             uiAccess="false"/>
           </requestedPrivileges>
          </security>
     </trustInfo>
   </assembly>

或者您可以使用 MSDN 中的示例代码或查看此处甚至查看SO。有很多东西。

于 2013-08-21T13:29:58.393 回答