Блокировка и разблокирование папки(Lock And Unlock A Folder)


1)Подключаем пространство имен:
using System.IO;
using System.Security.AccessControl;
2)Добавляем необходимые компоненты, нам понадобятся:
- textBox(textBox1)
- folderBrowserDialog(folderBrowserDialog1)
- button(btnBrowse)
- button(btnLock)
- button(btnUnLock)

Для выбора директории, в кнопке btnBrowse прописываем открытие folderBrowserDialog1, чтобы выбрать необходимую нам папку и отображение нашего выбора в textBox1:

private void btnBrowse_Click(object sender, EventArgs e)
{
   if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
   {
        textBox1.Text = folderBrowserDialog1.SelectedPath;
   }
}
3)Прописываем код для кнопок блокировки и разблокировании:
private void btnLock_Click(object sender, EventArgs e)
{
     try
     {
      string folderPath = textBox1.Text;
      string adminUserName = Environment.UserName;// getting your adminUserName
      DirectorySecurity ds = Directory.GetAccessControl(folderPath);
    FileSystemAccessRule fsa = new FileSystemAccessRule(adminUserName,  FileSystemRights.FullControl, AccessControlType.Deny)

      ds.AddAccessRule(fsa);
      Directory.SetAccessControl(folderPath, ds);
      MessageBox.Show("Locked");
     }
     catch (Exception ex)
     {
        MessageBox.Show(ex.Message);
     }       
}

private void btnUnLock_Click(object sender, EventArgs e)
{
     try
     {
     string folderPath = textBox1.Text;
     string adminUserName = Environment.UserName;// getting your adminUserName
     DirectorySecurity ds = Directory.GetAccessControl(folderPath);
  FileSystemAccessRule fsa = new FileSystemAccessRule(adminUserName,  FileSystemRights.FullControl, AccessControlType.Deny)

     ds.RemoveAccessRule(fsa);
     Directory.SetAccessControl(folderPath, ds);
     MessageBox.Show("UnLocked");
     }
     catch (Exception ex)
     {
        MessageBox.Show(ex.Message);
     } 
}
Результат при попытки попасть в заблокированную директорию:




Комментариев нет:

Отправить комментарий

Большая просьба, не писать в комментариях всякую ерунду не по теме!