2014-11-25 13 views
0

내 .Net 응용 프로그램은 지정된 디렉토리의 파일을 모니터합니다. 파일을 수정하려고하면 해당 파일을 백업해야합니다.C#에서 해당 파일을 수정하려고하는 것을 감지하는 방법은 무엇입니까?

내 목표는 디렉토리의 모든 파일을 백업하지 않는 것입니다. 나는 수정 될 파일 만 백업하기를 원한다. 이것은 폴더에있는 모든 파일 중 작은 비율이다.

.Net FileSystemWatcher는 파일이 이미 수정 된 것을 감지 할 수 있기 때문에 그 순간에 파일을 백업하기에는 너무 늦었습니다.

파일을 수정하려고하는 순간을 어떻게 감지하여 백업 할 수 있습니까?

+3

디스크에 요청을 가로 채고 미리 작업을 수행 할 수있는 파일 시스템 레벨 드라이버를 작성해야합니다. –

+4

마음 읽기, 아마도? :) –

+1

@eddie_cat 아니, 가능하지만 드라이버가 실제로 유일한 해결책입니다. –

답변

-2

쓰기 작업을 쉽게 할 수있는 방법이 없다면 (그리고 어떤 사람들처럼 드라이버를 쓰지 않고서도 그렇지 않은 것이 확실합니다.) 속임수를 쓸 수 있고 shaddow coppies와 파일 시스템 감시자의 조합을 사용할 수 있습니다 . 파일 시스템 감시자가 변경 사항을 감지하면 섀도 복사본을 시작한 다음 섀도 복사본을 복원 한 다음 나중에 수행하려는 작업을 수행하십시오.

나는 해결책을 찾지 못했지만 같은 결과로 끝난다. 저장 후 원래 버전의 파일이다.

+0

방금 ​​변경 내용을 되돌릴 때를 설명했습니다. OP는 원본을 보존하려고하지만 변경을 허용합니다. – DonBoitnott

+0

좋아, 그럼 내가 그 질문을 놓친다. shaddow 사본을 복원하는 대신. shaddow 사본을 백업 하시겠습니까? –

+0

귀하의 제안에 대한 실제 문제는 OP는 "내 목표는 디렉토리의 모든 파일을 백업하지 않도록하는 것입니다. 수정 될 파일 만 백업하고 싶습니다"라고 명시되어 있습니다. 당신의 제안은 정반대입니다. 항상 모든 것을 되돌립니다. – DonBoitnott