2012-10-17 5 views
2

셸 알림을 볼까요? 좋은 무료 구성 요소 또는 몇 가지 예제 소스 코드가 있습니까?단일 파일의 변경 사항을 모니터링하는 가장 간단한 방법은 무엇입니까?

아니면 그냥 1 초 타이머를 시작하고 주기적으로 파일의 타임 스탬프를 확인해야합니까?

우아 할 필요는 없으며 가장 간단 할 수도 있습니다. 필자는 파일이 변경 될 때 수행 할 처리에 더 관심이 있습니다 (로그 파일이므로 업데이트 될 때마다이를 구문 분석하고 테스트 실행의 세부 정보를 표시하려고합니다).

+2

가장 간단한 것은 폴링입니다. 그러나 그것은 또한 최소한 우아합니다. –

+1

@David 그는 어쨌든 좀 폴링 것입니다. AFAIR Windows는 변경 내용에 대해보고 할 수 없으며 "폴더를 다시 검색하면 변경된 내용이 있습니다"라고 말하는 것뿐입니다. 그러나 그는 타이머가 아닌 이벤트를 통해 설문 조사를 할 수 있습니다. –

+2

@ Arioch'The 폴더에 대해서는 잘 모르지만 Windows는 하나의 파일에 대한 자세한 변경 사항을보고 할 수 있습니다. – GolezTrol

답변

3

쉘 알림은 훌륭하지만 타이머보다 복잡합니다. 1 초의 폴링 간격으로 충분하면 사용할 수 있습니다.

하지만 실제 모니터링 코드를 캡슐화하는 '모니터'를 직접 만들 수 있습니다. 이 모니터는 파일이 변경된 경우 이벤트를 발생시킵니다. 그 모니터는 처음에는 타이머를 캡슐에 넣을 수 있지만 (2 분 작업은 쉽다), 모든 응용 프로그램 논리를 수정하지 않고 나중에 쉘 통지를 사용하도록 수정 될 수있다. 현재 델파이 쉘 구성 요소를 사용할 수 있습니다

+0

+1 및 대답. 마지막으로 KISS를 결정하고 1 초 타이머와 Embarcadero의 파일 타임 스탬프 가져 오기 방법을 사용했습니다 (http://edn.embarcadero.com/article/15541). – Mawg

3

Jedi VCL은 RxLib에서 change-notification/folder-monitor를 상속합니다.
RxLib는 이전 버전의 Delphi에서도 사용 가능할 수 있습니다.

현재 델파이 버전을 지정하지 않았습니다. RETAG 링크를 누르고 올바른 태그를 추가하십시오.

+0

+1 고마워, 나는 그걸 살펴볼 것이다. 나는 아직도 제다이를 사용하지 않지만, 내가 그렇게해야한다고 생각하는 것을 많이 본다. XE2 시작, btw. – Mawg

+2

버전을 알려 주셔서 감사합니다. * RETAG 링크를 누르고 적절한 태그를 추가하십시오. * 귀하의 버전은 검색 엔진 및 새로운 독자가 볼 수 있습니다. ttags가 있습니다. 사용하십시오. –

+0

좋아, 끝났어. 너도 할 수있어 ;-) +1 – Mawg

관련 문제