2014-07-05 2 views
-1

"C : \"디렉토리에 액세스해야하는 내 응용 프로그램에 문제가 있습니다. 승인되지 않은 액세스 예외는 시도 할 때 발생합니다.관리자 권한이있는 System.UnauthorizedAccessException

<requestedExecutionLevel level="highestAvailable" /> 

<requestedExecutionLevel level="requireAdministrator" uiAccess= "true"/> 

<requestedExecutionLevel level="requireAdministrator" uiAccess= "false"/> 

예외의 주요 코드는 다음과 같습니다 :

이미에 app.manifest에서 실행 레벨을 변경하려고했습니다
List<string> search = 
    Directory.GetFiles(@"C:\\", "*.exe*", SearchOption.AllDirectories).ToList(); 

아무도 도와 줄 수 있습니까? ase? 나는 매우 감사 할 것이다!

+1

이것은 아마도 문제가 아니지만'@ "C : \\"'는 C : \\가 아닙니다. C : \ –

+0

Visual Studio 바로 가기를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행을 클릭하십시오. – Tarik

+0

고마워요! 나도 이걸 시도했지만 작동하지 않았다. 같은 오류가 발생했다. – Fernando

답변

0

시도 할 때 무단 액세스 예외가 발생합니다.

관리자라는 것만으로 모든 것에 액세스 할 수있는 것은 아닙니다. 나는 그 어느 때 그것을 사용하지 않은,하지만 매뉴얼은 SearchOption.AllDirectories이 난데 :

는 현재 디렉토리와 검색 작업의 모든 서브 디렉토리를 포함합니다. 이 옵션에는 마운트 된 드라이브 및 검색의 심볼릭 링크와 같은 재분석 지점이 포함됩니다.

그래서 재귀 적으로 C 드라이브를 검색합니다. 즉 일반 관리자가 액세스 할 수 없게되는 것을 System Volume Information과 같은 것으로 만들려고합니다.

자신을 설정하고 (중요한 시스템 폴더의 ACL을 수정하는 것보다), C 드라이브의 모든 항목에 대한 액세스를 보장하는 보안 주체가 Windows에 있다고 생각하지 않습니다. 파일과 폴더를 직접 재귀하고 들어갈 수없는 폴더는 무시해야합니다.

관련 문제