2012-07-15 4 views
0

Windows 폼에서 C# 언어로 안티 바이러스 스캐너를 만들고 있습니다. 현재 코드를 사용하면 프로그램이 폴더를 열고 파일을 스캔 할 수 있습니다. 선택한 폴더가 '내 컴퓨터'또는 '사용자 프로필'일 때 많은 예외가 표시되고 그 순간에 검색이 중지됩니다. 나는이 문제를 해결하는 방법에 대해 어느 누구도 저에게 시범을 보이기를 바랍니다.컴퓨터에있는 파일에 액세스하기

예외는 있었다 :

System.IO.IOException, System.UnauthorizedAccessException 그리고 더 많은.

코드의 일부를 보여 드리고자합니다. 이미지는 여기에서 볼 수 있습니다. 여기에 코드를 붙여 넣기를 원했지만 제 기관은 표절에 엄격합니다.

click for a larger version

내 상황을 해결 도와주세요.

간단하게 액세스에 대한 사용자 수 있도록 설계 표준 디렉토리 트리 브라우저 컨트롤에서 노드가있어, 그렇지 않은 디렉토리이기 때문에 당신은

+1

여기에 코드를 붙여주세요. 이미지는 다소 작습니다. 또한 Exception 유형에 따라 IOException이있는 파일이 사용 중이거나 다른 것으로 보입니다. 그리고 UnauthorizedAccessException은 자기 자신을 위해 일종의 말을합니다. 액세스 권한이 없습니다. 응용 프로그램을 관리자 권한으로 실행하여 다시 시도하십시오. –

답변

1

당신은 "사용자 프로필" "내 컴퓨터"또는 검색 할 수 없습니다 감사 특정 유형의 위치.

이러한 폴더를 검사 할 수있게하려면 해당 폴더를 선택했는지 검색하고 자신의 논리를 제공하여 검색 할 위치를 열거해야합니다.

약간의 접선으로이 프로젝트를 실제 AV 패키지 대신 사용할 계획이 없기를 바랍니다. 차단해야 할 유형의 공격을 고려할 때 특히 맬웨어 방지 시스템을 구축하는 것은 쉬운 일이 아닙니다. 이것이 학습 목적으로 만 사용된다면, 괜찮습니다. 그러나 사제 디자인으로 인한 보안 수준이 조금만 향상 될 것으로 기대하지 마십시오. 적절한 AV 패키지에는 감지 서명 (정적 해시, 퍼지 해시, 데이터 패턴), 커널 모드 구성 요소, 메모리 스캐너 및 동작 분석의 대규모 데이터베이스가 필요합니다. 이 모든 것을 직접 제작하는 것은 어렵습니다.

(출처 : 재미있는 프로젝트로 나 자신을 썼습니다.)

+0

그리고 추가하려면 - 어떤 종류의 병렬 처리를 구현했는지 확인하십시오. 그렇지 않으면 계속 걸릴 것입니다. – tsells

관련 문제