반응형
* 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 ;
}
}
}
}
* 결과 화면
위 그림과 같이 해당 폴더 권한을 설정 하고 접근 하면 권한이 없다고 나오고 해제 하고 접근 하게 되면 해당 폴더에
접근 할 수 있게 됩니다.
반응형
'C# Programming' 카테고리의 다른 글
[C#] VB (Redim Preserve) 처럼 배열 크기(Size) 조절 하기 (0) | 2019.11.25 |
---|---|
[C#] 32bit, 64 bit 운영 체제 체크하기 (1) | 2019.11.21 |
[C#] 날씨 (Weather) 정보 가져오기 (0) | 2019.11.14 |
[C#] DateTime 클래스 : 현재 선택된 달의 마지막 날짜 및 요일 구하기 (0) | 2019.11.10 |
[C#] string 을 int 및 double 형으로 변환 하기, null 체크 (0) | 2019.11.05 |