열기 또는 닫기와 같이 파일 작업이 어떻게 든 호출 될 때 가능합니까? 요청이 운영 체제에서 처리되기 전에 처리 할 수 있습니까? 가능한 경우 취소하려면 .NET? .NET에 그런 능력이 없다면 어떻게 할 수 있습니까?.NET에서 파일 작업을 추적 할 수 있습니까?
답변
에 대한 Google 검색을 추가했습니다. 예를 들어, 바이러스 스캐너는 항상 그렇게합니다. Process Monitor으로 파일 활동을 쉽게 모니터링 할 수 있습니다. FileSystemWatcher Class을 사용하여 C#에서 프로그래밍 방식으로 수행 할 수도 있습니다. 그러나 프로그램이 열리지 못하게하거나 프로그램이 파일에 액세스하는 것을 막으려 고 시도하는 것은 C#에서는 수행 할 수 없습니다. C 또는 C++를 사용해야합니다. File System Filter Driver을 만들어야합니다. 그것은 당신이 필요로하는 것을 정확히 구축하는 것은 복잡한 일입니다. 견적하려면 MSDN :
A file system filter driver intercepts requests targeted at a file system or another file system filter driver. By intercepting the request before it reaches its intended target, the filter driver can extend or replace functionality provided by the original target of the request. Examples of file system filter drivers include anti-virus filters, backup agents, and encryption products.
원하는 경우 Windows API를 연결할 수 있습니다. .NET/C#으로 그렇게하기 위해이 방법을 체크 아웃 :
시스 인 터널은 임의의 윈도우 (.NET 응용 프로그램을 포함한) 프로세스 및 캡처에 부착하는 하나 개의 함수있는 프로세스 모니터라는 무료 도구를 제공합니다 파일 열기, 닫기, 읽기 등을 포함한 시스템 호출
Process Monitor Download Page에서 다운로드 할 수 있습니다.
편집
내가 질문을 다시 읽어, 나는 당신이 차단 가능성이 이러한 작업을 취소에 대해 요구하고 있음을 참조하십시오. FileSystemWatcher
클래스가 최선의 방법이라고 생각합니다. 파일 조작을 일방적으로 취소 할 수 있다고는 생각하지 않지만 호출자에게 작업을 중단하라는 신호를 보내려면 일종의 협력 메커니즘을 구축해야합니다.
나는 그 종류의 작업으로 커널에 들어가야한다는 것을 확신하며, C로 코딩해야한다는 것을 확신한다. File System Drivers을 봐라.
업데이트 : SO link가 도움이 될 수 있습니다.
UPDATE : 또한 Windows File System Drivers
하여 수행 할 수 있습니다 할 물어 무엇 What is a good resource to get started with Windows file system driver development?
- 1. 파이썬에서 파일 작업을 수행 할 수 있습니까?
- 2. .net에서 SSIS 작업을 실행할 수 있습니까?
- 3. TFS는 비 프로젝트 작업을 추적 할 수 있습니까?
- 4. git이 ".git"폴더를 추적 할 수 있습니까?
- 5. 오프라인 SWF에서 분석을 추적 할 수 있습니까?
- 6. 루비에서 파일을 "추적"할 수 있습니까?
- 7. .NET에서 작업하는 동안 파일 조각화를 어떻게 제한 할 수 있습니까?
- 8. 어떻게하면이 작업을 할 수 있습니까?
- 9. Gmail에서 첨부 파일 다운로드를 추적 할 수 있습니까?
- 10. 업로드 된 파일 위치를 추적 할 수 있습니까?
- 11. ObjectContext.SaveChanges의 진행 상태를 추적 할 수 있습니까?
- 12. RuntimeTypeModel을 protobuf-net에서 병합 할 수 있습니까?
- 13. 어떻게 메모리 할당을 추적 할 수 있습니까?
- 14. 입력 유형 = "파일"에서이 작업을 수행 할 수 있습니까?
- 15. gf와 같은 작업을 어떻게 할 수 있습니까?
- 16. .NET에서 클래스의 별칭을 정의 할 수 있습니까?
- 17. .net에서 패킷을 위조 할 수 있습니까?
- 18. .net에서 여권 인증을 할 수 있습니까?
- 19. .NET에서 MathGL 함수를 호출 할 수 있습니까?
- 20. .NET에서 OCaml을 호출 할 수 있습니까?
- 21. ASP .NET에서 ViewState를 비활성화 할 수 있습니까?
- 22. .NET에서 MSAccess 데이터베이스를 이식 할 수 있습니까?
- 23. 어떻게 odata 트랜잭션을 추적 할 수 있습니까?
- 24. ZigFu와 Three.Js로 손가락을 추적 할 수 있습니까?
- 25. 발신 전화와 SMS를 추적 할 수 있습니까?
- 26. 어떻게 트윗을 추적 할 수 있습니까? ph
- 27. IMAP 메일 답장을 추적 할 수 있습니까?
- 28. ASIFormDataRequest에서 다운로드 진행률을 추적 할 수 있습니까?
- 29. 그룹의 페이지를 동적으로 추적 할 수 있습니까?
- 30. fogbugz가 대소 문자를 추적 할 수 있습니까?
링크가 더 이상 작동하지 않습니다. –
@JamesWilkins 임시이어야합니다. 두 링크가 모두 나를 위해 일했습니다. 베스트 – kenny