От: | Пельмешко | blog | |
Дата: | 20.12.09 10:38 | ||
Оценка: |
public static IEnumerable<FileInfo> Traverse(DirectoryInfo dir, string pattern)
{
foreach (var file in dir.GetFiles(pattern))
{
yield return file;
}
foreach (var sub in dir.GetDirectories())
{
foreach (var file in Traverse(sub, pattern))
{
yield return file;
}
}
}
var principal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
var rules =
new DirectoryInfo("C:\\Documents and settings")
.GetAccessControl(AccessControlSections.Access)
.GetAccessRules(true, true, typeof(NTAccount));
foreach (FileSystemAccessRule rule in rules)
{
if (principal.IsInRole(rule.IdentityReference.Value))
{
Console.WriteLine("User: '{0}'", rule.IdentityReference.Value);
Console.WriteLine("{0}: '{1}'", rule.AccessControlType, rule.FileSystemRights);
}
}
User: 'Все'
Deny: 'ReadData'
User: 'Все'
Allow: 'ReadAndExecute, Synchronize'