众所周知,Win7系统默认账户对C:\Windows下的权限很低,在该目录下右击菜单后只出现一个“新建文件夹”。现在我想编写一个程序实现将某个指定文件夹的所有者设置为Adminitrators,然后再对其设置权限。权限设置的代码已没有任何问题,但是始终不能设置文件和文件夹的所有者。
我写的代码如下:// 设置指定文件夹的所有者     实际调用时Dir="C:\\Windows\\System32", Owner="Administrators" 或者"BUILTIN\\Administrators"        public void SetOwner(string Dir, string Owner)
        {
            DirectoryInfo topDir = new DirectoryInfo(Dir);
            DirectorySecurity dirSec = topDir.GetAccessControl();
            IdentityReference idenRef = new NTAccount(Owner);
            
            dirSec.SetOwner(idenRef);
            Directory.SetAccessControl(Dir, dirSec);   // 在Win7下测试时,由于默认的所有者为TrustedInstaller,所以执行该条语句时报错:无权设置权限        }
大家帮我看看这段代码应该如何编写才对。

解决方案 »

  1.   

    楼主说的是这个吧。
    c# 更改文件访问权限 所有者(适用于win7以下版本)
    http://mars968.blog.163.com/blog/static/740003320104184457916/
      

  2.   


     ManagementPath SharePath = new ManagementPath("\\\\kid-wang\\root\\cimv2:Win32_Share");
                ObjectGetOptions ogo = new ObjectGetOptions(null, new TimeSpan(500), true);
                ManagementClass _processClass = new ManagementClass(SharePath,ogo);
                Directory.CreateDirectory("c:\\Z_Share\\");
                if (Directory.Exists("c:\\Z_Share\\"))
                {
                    object[] sharea = { "C:\\Z_Share", "Z_Share", 0, 5, "1", "1" };
                    object result = _processClass.InvokeMethod("Create", sharea);
                }