设置文件夹权限问题

绝对路径:

        protected void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                string filename = @"E:\k"; //目标目录
                string account = @"Everyone";//用户名
                string userrights = @"F";//权限字符串,自己定义的
                AddDirectorySecurity(filename, account, userrights);
            }
            catch (Exception ex)
            {
            }

        }

        static public void AddDirectorySecurity(string FileName, string Account, string UserRights)
        {
            FileSystemRights Rights = new FileSystemRights();

            if (UserRights.IndexOf("R") >= 0)
            {
                Rights = Rights | FileSystemRights.Read;
            }
            if (UserRights.IndexOf("C") >= 0)
            {
                Rights = Rights | FileSystemRights.ChangePermissions;
            }
            if (UserRights.IndexOf("F") >= 0)
            {
                Rights = Rights | FileSystemRights.FullControl;
            }
            if (UserRights.IndexOf("W") >= 0)
            {
                Rights = Rights | FileSystemRights.Write;
            }

            bool ok;
            DirectoryInfo dInfo = new DirectoryInfo(FileName);
            DirectorySecurity dSecurity = dInfo.GetAccessControl();
            InheritanceFlags iFlags = new InheritanceFlags();
            iFlags = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit;
            FileSystemAccessRule AccessRule2 = new FileSystemAccessRule(Account, Rights, iFlags, PropagationFlags.None, AccessControlType.Allow);
            dSecurity.ModifyAccessRule(AccessControlModification.Add, AccessRule2, out ok);

            dInfo.SetAccessControl(dSecurity);
        }

 

 

相对路径:

 


        protected void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                string filename = @"WebApplication1"; //(这边是根目录的名称其它可以像后面那样写)目标目录 ~/Account
                string account = @"Everyone";//用户名
                string userrights = @"F";//权限字符串,自己定义的
                AddDirectorySecurity(filename, account, userrights);
            }
            catch (Exception ex)
            {
            }

        }

        static public void AddDirectorySecurity(string FileName, string Account, string UserRights)
        {
            FileSystemRights Rights = new FileSystemRights();

            if (UserRights.IndexOf("R") >= 0)
            {
                Rights = Rights | FileSystemRights.Read;
            }
            if (UserRights.IndexOf("C") >= 0)
            {
                Rights = Rights | FileSystemRights.ChangePermissions;
            }
            if (UserRights.IndexOf("F") >= 0)
            {
                Rights = Rights | FileSystemRights.FullControl;
            }
            if (UserRights.IndexOf("W") >= 0)
            {
                Rights = Rights | FileSystemRights.Write;
            }

            bool ok;
            DirectoryInfo dInfo = new DirectoryInfo(System.Web.HttpContext.Current.Server.MapPath(FileName));
            if ((dInfo.Attributes & FileAttributes.ReadOnly) != 0)
            {
                dInfo.Attributes = FileAttributes.Normal;
            }
            DirectorySecurity dSecurity = dInfo.GetAccessControl();
            InheritanceFlags iFlags = new InheritanceFlags();
            iFlags = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit;
            FileSystemAccessRule AccessRule2 = new FileSystemAccessRule(Account, Rights, iFlags, PropagationFlags.None, AccessControlType.Allow);
            dSecurity.ModifyAccessRule(AccessControlModification.Add, AccessRule2, out ok);

            dInfo.SetAccessControl(dSecurity);
        }

posted @ 2012-01-31 10:21  踏浪帅  阅读(304)  评论(0编辑  收藏  举报