문제

디렉토리를 때때로 스캔하는 대신 새 파일이 특정 디렉토리에서 작성되는시기를 알고 싶습니다.

운영 체제가 내 프로그램에 새 파일이 만들어 졌다고 말할 수있는 방법이 있음을 이해합니다. 어떻게 작동합니까?

언급 한 바와 같이, 이것은 유사점이 있습니다C/C ++의 파일/디렉토리 변경에 대한 알림을받는 방법, 이상적으로는 posix를 사용합니다.

도움이 되었습니까?

해결책

어떤 OS에 따라 다릅니다.

Windows에서는 기본 API가 될 것입니다 디렉토리 변경 알림.

태그에 Linux를 언급하기 때문에 이것은 다음과 같습니다. Inotify API.

10.5 기준으로 OS X 답변에 추가하려면 FSEVENTS API.

다른 팁

Linux에서 확인하십시오 Inotify.

C/C ++의 파일/디렉토리 변경에 대한 알림을받는 방법, 이상적으로는 posix를 사용합니다.

또는 stackoverflow에서 inotify를 검색하십시오. 많은 아이디어를 얻을 수 있습니다.

가족 모든 unix에서 일관된 파일 관찰 인터페이스를 제공합니다. Linux에서 백엔드 데몬은 다음으로 대체 될 수 있습니다. 집 없는 아이, 그러나 FAM과 연결된 프로그램은 Gamin과 잘 어울릴 것입니다. (무대 뒤에서 FAM은 폴링을 사용하고 있으며 Gamin은 Inotify 또는 Dnotify 또는 Kqueue를 사용하고있을 수 있지만 구현에 대해 걱정할 필요는 없습니다.)

OS X.5가 있습니다 fsevents, 지정된 파일 및 디렉토리 대신 전체 시스템을 모니터링하지만 귀하의 요구를 충족시킬 수 있다는 점에서 매우 다릅니다.

Windows에서는 참조하십시오 찾기 (첫 번째 | Next | Close) Changenotification 또는 ReadDirectoryChanges.

FileSystemWatcher는 답변이며 재귀 적으로 작동합니다.

예가 있습니다 여기 (FileSystemWatcher 검색)

Mac OS X의 경우이 기능은 Spotlight API의 일부입니다.

Windows에서 .net을 사용하여 (Linux/Mono에 대해서는 확실하지 않음) FilessytemWatcher를 사용하여 새 파일을보고 이벤트가 생성 될 때 이벤트를 제기 할 수 있습니다.

MSDN에서 :

FileSystemWatcher를 사용하여 지정된 디렉토리의 변경 사항을 확인하십시오. 지정된 디렉토리의 파일 및 하위 디렉토리의 변경 사항을 볼 수 있습니다. 로컬 컴퓨터, 네트워크 드라이브 또는 원격 컴퓨터에서 파일을 볼 수있는 구성 요소를 만들 수 있습니다.

MSDN 페이지

Windows API는 파일 시스템을 모니터링하기위한 시설을 제공합니다. 여기에 예가 있습니다. http://msdn.microsoft.com/en-us/library/aa365261%28vs.85%29.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top