You want to use C # to set up and read directory permissions on NTFS partitions, and find a lot of information. Finally found a section of vb.net code, made changes to C # to show you.
using System;
using System.Collections;
using System.IO;
using System.Security.AccessControl;
Static Class Tester
{
public static void Main ()
{
Try
{
string filename = @ "f:\k"; Target directory
string account = @ "Administrator";//Username
string userrights = @ "RW";//permission string, defined by
adddirectorysecurity (filename, account, userrights);
Console.ReadLine ();
}
catch (Exception e)
{
Console.WriteLine (e);
Console.ReadLine ();
}
}
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, Acce Sscontroltype.allow);
Dsecurity.modifyaccessrule (Accesscontrolmodification.add, AccessRule2, out OK);
Dinfo.setaccesscontrol (dsecurity);
//Lists the permissions that the target directory has
directorysecurity sec = Directory.getaccesscontrol (FileName, Accesscontrolsections.all);
foreach (FileSystemAccessRule rule in sec. Getaccessrules (True, True, typeof (System.Security.Principal.NTAccount))
{
Console.WriteLine ("----------------------------------");
Console.WriteLine (rule. Identityreference.value);
if (rule. Filesystemrights & Filesystemrights.read)!= 0)
Console.WriteLine (rule. Filesystemrights.tostring ());
}
Console.read ();
}
}
With MSDN, it's easy to read the code above. But it looks like this program needs to run as an administrator. ^_^