2009-11-12 8 views
1

파일을 모니터링하고 디스크에 기록하는 동안 편집해야하는 프로젝트가 여러 개 있습니다. 나는 내가 찾고있는 것이 조작 상으로 안티 바이러스 도구가 작동하는 방식과 동일하다는 느낌을 가지고있다. 자세한 내용을 알려 드리겠습니다. 1) Office 응용 프로그램에서 저장 한 모든 파일을 트랩 한 다음 디스크에 쓰는 동안 각 문서의 머리글/바닥 글에 특정 회사 태그를 추가해야합니다. 2) 파일 내용이 특정 회사 정책을 충족하는지 확인하기 위해 일부 검색 작업을 수행 할 수 있도록 (거의 모든 유형의) 편집 가능한 파일이 디스크에 기록 될 때 즉시 알 필요가 있습니다.파일을 쓰거나 수정할 때 파일을 분석하기위한 C# 솔루션

간단히 말해서 사용자가 사용자 파일을 디스크에 쓸 때 처리해야한다는 것을 알 수 있습니다.

여기 내 문제입니다. 이 작업을 위해 C#을 사용하고 싶지만 내 요구 사항을 충족시킬 수 있는지 확실하지 않습니다. 내가 넷에서 본 모든 것은 저수준의 C 프로그래밍에 맞춰 졌는데, 나는이 프로젝트의 시간 제약으로 인해 특별히 피하고 싶다. 누구나 쉽게 C#에서이 작업을 수행하는 방법을 알고 있습니까? 심지어 실행 가능합니까 (예 : 너무 높은 수준의 언어, 너무 느린 언어 등)?

+0

메타 데이터를 Normal.Dot에 넣을 수 있습니까? 모든 사용자가 Normal.Dot 버전을 사용하도록 할 수 있습니까? –

답변

0

FileSystemWatcher를 보았습니까?

0

C# 쉽게 할 수 있습니다. FileSystemWatcher 클래스 (http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx)를 살펴보십시오.

+0

FileSystemWatcher는 파일이 수정되는시기를 알려주지 만보고 싶은 모든 ** 폴더에 하나를 설정해야합니다. –

+0

이것은 모든 솔루션에 해당 될 가능성이 높습니다. 어쨌든 전체 드라이브에 대해 반복적 인 감시를하지 못하게하는 것은 성능상의 영향을 제외하고는 아무 것도 없습니다. –

1

성능은 문제가되지 않습니다. 나는 전체 과정에 의구심을 가졌습니다. 그것은 재앙을위한 조리법처럼 들립니다. 몇 분 안에 FileSystemWatcher를 사용하여 C#에서 쉽게 무언가를 해킹 할 수 있지만 문제가 많습니다. AV 소프트웨어는 파일을 잠그고 다양한 소프트웨어를 망가뜨릴만큼 좋지 않으며 파일을 수정하려고하지도 않습니다. 다른 앱이 언제 파일을 "작성"했는지 어떻게 알 수 있습니까? 파일을 잠근 상태에서 액세스 할 수 없기 때문에 무엇인가가 깨지면 어떻게합니까?

+0

버퍼 제한으로 인해 디렉토리의 80 개 파일 만 모니터링 할 수 있다고 읽었습니다. 그것은 나를 위해 실제로 확장되지 않습니다. AV 솔루션은 어떻게합니까? 개별 파일 트랜잭션과 관련되도록 하위 DLL을 대체합니까? – Smurf

+0

FSW에서 문제가되는 곳은 디렉토리의 많은 파일이 동시에 변경되는 경우입니다. 변경 사항을 잃을 수 있습니다. AV는 스토리지 필터 드라이버를 사용하고 I/O 라이브러리를 메모리에 shim-patching합니다 (공급 업체에 따라 다름). 관리 코드에서는 (합법적으로) 그렇게 할 수 없습니다. 이전에 작동하도록 만들었지 만, 정말 나쁜 생각이었습니다. 마법사를 계속 실행하려면 마법사가되어야합니다. 진지하게, 나는 전체 접근법을 다시 생각해 볼 것이다. (사무실 addin이나 뭔가로 이벤트를 저장하면된다.) 실제 사용자가 악몽을 꾼 후에야 그것을 할 수 있습니다. 패치 Office 오피스 소품 어쨌든 파일에 독점적 인 액세스가 필요합니다. – nitzmahone

+0

당신은 좋은 지적을 제기합니다 ... 아이디어가 변경되었습니다 : * 모니터 파일 생성 또는 수정 * 콘텐츠 파일 분석 - Office가 예제 였지만 모든 파일 유형을 모니터해야합니다. * 특정 콘텐츠 존재하거나, 변경을 막을 수 있습니다. 나는 더 많은 도움을 요청해야한다 :-) : 1) 모든 파일 유형의 내용을 검색 할 수있는 라이브러리가 있습니까? 예 : RegEx 쿼리를 사용하여 Doc 또는 HTML 파일에서 중요한 텍스트를 찾고 싶습니다. 2) FileSystemWatcher 출력을 기반으로 파일 작업을 '실행 취소'하는 방법이 있습니까? 예. 파일 내용 정책이 위반 된 경우 파일 복사본을 실행 취소 할 수 있습니까? – Smurf

관련 문제