반응형

* C# 폴더 락 설정 및 해제  - 권한 설정 및 해제 예제...

 테스트 환경

 - 윈도우7 64 Bit

 - Visual Studio 2008 닷넷 프레임 워크 3.5

 

메인화면

 

전체 소스 코드

Form1.cs

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


using System.Security.AccessControl;
using System.IO;

namespace CSharp_FolderLock
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //Folder Lock Set
            //선택된 폴더가 존재 하지 않는다면....
            if (!Directory.Exists(label1.Text))
            {
                return;
            }

            try
            {
                string adminUserName = Environment.UserName;
                DirectorySecurity ds = Directory.GetAccessControl(label1.Text);
                FileSystemAccessRule fsa = new FileSystemAccessRule(adminUserName, FileSystemRights.FullControl, AccessControlType.Deny);
                ds.AddAccessRule(fsa);
                Directory.SetAccessControl(label1.Text, ds);
            }
            catch (Exception ex)
            {
                label2.Text = ex.Message.ToString();
            }

            label2.Text = "Folder Lock Success...";
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //Folder Lock Cancel
            //선택된 폴더가 존재 하지 않는다면....
            if (!Directory.Exists(label1.Text))
            {
                return;
            }


            try
            {
                string adminUserName = Environment.UserName;
                DirectorySecurity ds = Directory.GetAccessControl(label1.Text);
                FileSystemAccessRule fsa = new FileSystemAccessRule(adminUserName, FileSystemRights.FullControl, AccessControlType.Deny);
                ds.RemoveAccessRule(fsa);
                Directory.SetAccessControl(label1.Text, ds);
            }
            catch (Exception ex)
            {
                label2.Text = ex.Message.ToString();
            }
            label2.Text = "Folder Lock Cancel...";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Folder Select
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            
            if (fbd.ShowDialog() == DialogResult.OK)
            {
                label1.Text = fbd.SelectedPath ;
            }

        }
    }
}

 

* 결과 화면

 

위 그림과 같이 해당 폴더 권한을 설정 하고 접근 하면 권한이 없다고 나오고 해제 하고 접근 하게 되면 해당 폴더에

접근 할 수 있게 됩니다. 

반응형

+ Recent posts