C#创建目录并设置权限

Yod*_*age 5 c# windows

我试图使用下面的代码允许所有用户能够修改文件夹:

class Program
{
    private const string FileName = "test.txt";
    private static readonly string FilePath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\TEST\\" + FileName;
    private static readonly string UserName = Environment.UserDomainName;

    static void Main()
    {
        DirectorySecurity securityRules = new DirectorySecurity();

        string dirPath = Path.GetDirectoryName(FilePath);

        securityRules.AddAccessRule(new FileSystemAccessRule("Users", FileSystemRights.Modify, AccessControlType.Allow));

        if (dirPath == null) throw new InvalidOperationException("Failure to save local security settings");

        if (!Directory.Exists(dirPath)) Directory.CreateDirectory(dirPath, securityRules);

        File.WriteAllText(FilePath, "Test test!");
    }
}
Run Code Online (Sandbox Code Playgroud)

运行代码后,"用户"将添加到文件夹中,但不会分配任何权限.所有的读,写,执行等都不会被选中.除了特殊权限被选中.

如何为所有用户添加包含所有修改的文件夹?

fab*_*tto 8

你可以使用Directory.SetAccessControl().

例:

DirectoryInfo directory = new DirectoryInfo(@"C:\my\directory");
DirectorySecurity security = directory.GetAccessControl();

security.AddAccessRule(new FileSystemAccessRule(@"MYDOMAIN\JohnDoe", 
                        FileSystemRights.Modify, 
                        AccessControlType.Deny));

directory.SetAccessControl(security);   
Run Code Online (Sandbox Code Playgroud)

msdn中的更多细节.