• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

[c#] Простая реализация для защиты ваших папок.

Lomanu4 Оффлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,111
Симпатии
213
Баллы
155
#1
C#:
C#:
public class Access
{
    private const bool TRUE = true;
    internal static void KeyDirectory(string Dir, bool Status)
    {
        try
        {
            if (Directory.Exists(Dir))
            {
                DirectorySecurity ds = Directory.GetAccessControl(Dir);
                var fsa = new FileSystemAccessRule(User, FileSystemRights.FullControl, AccessControlType.Deny);
                switch (Status)
                {
                   case TRUE: ds.AddAccessRule(fsa);  break;
                   default: ds.RemoveAccessRule(fsa); break;
                 }
                 Directory.SetAccessControl(Dir, ds);
            }
       }
      catch (UnauthorizedAccessException) { }
      catch (IOException) { }
}

private static string User
{
   get
   {
       try
       {
           return WindowsIdentity.GetCurrent().Name;
       }
       catch (SecurityException)
       {
           return Environment.UserName;
       }
    }
  }
}
Вызывается просто:
C#:
C#:
private static readonly bool True = true, False = false;
private static void Main()
{
  Access.KeyDirectory(PathToDirectory, True); // Блокировка
  Console.ReadKey();
  Access.KeyDirectory(PathToDirectory, False); // Разблокировка
}
В итоге получится:


и
 
Вверх Снизу