FileSecurity не устанавливается - PullRequest
       24

FileSecurity не устанавливается

1 голос
/ 02 декабря 2011

Для отдельного проекта мой код считывает файл, уничтожает старый, создает новый и т. Д. Однако мне нужно получить FileSecurity AccessControl из старого файла и применить его к новому. Я довольно новичок в C #, поэтому раньше я не работал с FileSecurity, ниже приведено то, что я придумал, это не ошибка, но, похоже, тоже не работает.

public static void Main()
{
    try
    {
        string fileName = "test.txt";
        FileInfo fi = new FileInfo(fileName);
        FileSecurity fs = fi.GetAccessControl();

        Console.WriteLine("Got perms");
        Console.Read();

        Console.WriteLine("Adding access control to " + fileName);

        fi.SetAccessControl(fs);

        Console.WriteLine("Done.");
    }
    catch (Exception e)
    {
        Console.WriteLine(e);
    }
    Console.Read();
}

Что я бы сделал, чтобы проверить, так это настроить пользователей на полный контроль над файлом. Запустите программу до первой половины, удалите файл и создайте его снова без полного контроля, затем дайте программе завершиться. Однако, когда я иду на вкладку безопасности файла, он не показывает полный контроль. Я также попытался создать новый объект FileInfo после удаления старого файла, но это тоже не сработало.

Любые предложения будут наиболее полезны

1 Ответ

0 голосов
/ 02 декабря 2011

Как то так должно работать

        string dir = Path.GetDirectoryName(tbFileLocation.Text);

        DirectoryInfo di = new DirectoryInfo(dir);

        DirectorySecurity ds = di.GetAccessControl();

        FileSystemRights fsRights = FileSystemRights.FullControl;
        FileSystemAccessRule accessRule = new FileSystemAccessRule("Dummy", fsRights, AccessControlType.Allow);

        ds.AddAccessRule(accessRule);

        di.SetAccessControl(ds);
...