您当前的位置:首页 > 文章 > C# :winfrom 给文件夹写入权限代码

C# :winfrom 给文件夹写入权限代码

作者:小象整理 时间:2024-04-28 阅读数:366 人阅读

在C#中,给文件夹设置权限通常涉及到System.Security.AccessControlSystem.IO命名空间。以下是一个简单的示例,演示如何为一个文件夹(及其子文件夹和文件)设置写权限:

using System;
using System.IO;
using System.Security.AccessControl;
 
public class FolderPermissionSetter
{
    public static void SetFolderWritePermission(string folderPath, bool allow)
    {
        try
        {
            // 获取文件夹信息
            DirectoryInfo dInfo = new DirectoryInfo(folderPath);
            // 获取访问控制列表(ACL)条目
            DirectorySecurity dSecurity = dInfo.GetAccessControl();
 
            if (allow)
            {
                // 添加允许写权限的规则,针对所有用户
                FileSystemAccessRule fsAccessRule = new FileSystemAccessRule("Users", FileSystemRights.Write, AccessControlType.Allow);
                // 修改ACL
                dSecurity.AddAccessRule(fsAccessRule);
            }
            else
            {
                // 添加拒绝写权限的规则,针对所有用户
                FileSystemAccessRule fsAccessRule = new FileSystemAccessRule("Users", FileSystemRights.Write, AccessControlType.Deny);
                // 修改ACL
                dSecurity.AddAccessRule(fsAccessRule);
            }
 
            // 设置新的访问控制列表
            dInfo.SetAccessControl(dSecurity);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}
 
// 使用示例
class Program
{
    static void Main()
    {
        string folderPath = @"C:\YourFolder"; // 替换为你的文件夹路径
        FolderPermissionSetter.SetFolderWritePermission(folderPath, true); // 设置写权限
        // FolderPermissionSetter.SetFolderWritePermission(folderPath, false); // 撤销写权限
    }
}

本站大部分文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。

如果侵犯了您的权益请来信告知我们删除。邮箱:1451803763@qq.com