반응형

폴더 생성 후 권한없다고 뜰때 사용

private void CreateResourceDirectory()
{
	DirectorySecurity directorySecurity = new DirectorySecurity(); 
	directorySecurity.SetAccessRuleProtection(true, false); 
	SecurityIdentifier everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null);

	// 디렉토리에 모든 사용자가 사용할 수 있게 권한 주기
	directorySecurity.AddAccessRule(new FileSystemAccessRule(everyone, FileSystemRights.Write | 
	FileSystemRights.ReadAndExecute | FileSystemRights.WriteAttributes 
	| FileSystemRights.Delete | FileSystemRights.CreateFiles, InheritanceFlags.ObjectInherit 
	| InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow)); 

	DirectoryInfo difo = new DirectoryInfo(DirectoryPath); // 원하는 위치에 객체생성
	if (difo.Exists == false) // 폴더의 존재유무 확인
	{ 
   		difo.Create(directorySecurity); // 권한추가한 폴더 생성
   		difo.Attributes = FileAttributes.Hidden; // 숨김 폴더로 만들기
	}
}

private void DeleteResourceDirectory()
{
    try // 권한을 줘도 삭제오류 발생시 오류 잡기
    {
    	DirectoryInfo fifo = new DirectoryInfo(DirectoryPath);
    	fifo.Delete(true);
    }
    catch (Exception ex)
    {
    	MessageBox.show(ex.Message);
    }
}
반응형

+ Recent posts