Linux OS에는 파일 시스템의 변경 사항을 애플리케이션에 알리는 ionotify 하위 시스템이 있습니다.
그러나 저는 주로 Windows 사용자이므로 파일 시스템 변경 사항을 모니터링하는 유사한 방법이 있는지 궁금합니다.
Linux OS에는 파일 시스템의 변경 사항을 애플리케이션에 알리는 ionotify 하위 시스템이 있습니다.
그러나 저는 주로 Windows 사용자이므로 파일 시스템 변경 사항을 모니터링하는 유사한 방법이 있는지 궁금합니다.
답변:
FindFirstChangeNotification API 또는 .NET 대응 FileSystemWatcher를 참조하십시오.
경우에 당신은 사용하고있는 .NET을 사용을 FileSystemWatcher
. 자세한 정보 : http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
당신이 사용하는 경우 C , 사용 FindFirstChangeNotification
, FindNextChangeNotification
, ReadDirectoryChangesW
. 자세한 정보 : http://msdn.microsoft.com/en-us/library/aa365261(VS.85).aspx
에 OSX , 관련 API는이다 fsevents
API를.
그것들은 모두 서로 미묘하게 다르며 모두 엣지 케이스에서 의심스러운 신뢰성을 가지고 있습니다. 일반적으로 모든 변경 사항을 100 % 완벽하게보기 위해 이러한 API에 의존 할 수는 없습니다. 파일 시스템 모니터링을 사용하는 대부분의 사람들은 푸시 API에서 손실되거나 불완전한 정보를 보상하기 위해이를주기적인 스캔과 결합합니다.
이것 좀보세요 : inotify-win, Windows 용 inotifywait 도구의 포트
또한 이것 : inotify-tools
조금 늦었지만 ...
Windows에는 앱을 실행하지 않고도 이벤트를 모니터링 할 수있는 OSX 이벤트와 유사한 기능이 있습니다. Windows USN 저널은 모든 파일 변경 사항을 추적합니다. Jeffrey Richter (Advanced Windows의 저자)는 MSDN Journal에 대한 작업 샘플 로 훌륭한 기사 를 작성했습니다 . 업데이트 : MSJ가 더 이상 MS에서 온라인 상태가 아니므로 archive.org의 기사 입니다.
USN Change Journals는 전체 볼륨을 모니터링해야하는 백업 도구 또는 인덱스와 같은 애플리케이션을 구축하는 경우 더 좋습니다.
FileSystemWatcher
| FindFirstChangeNotification
PhillipBrandonHolmes 가 말한 것은 ?
FileSystemWatcher ()는 주로 감시자 버퍼에 대한 오류 처리가 다소 불완전하다는 사실 때문에 신뢰할 수 없습니다. 경로 및 자세한 오류 처리 정보가 없기 때문에 Microsoft는 작업 디렉터리를 복구하거나 수동으로 폴링 할 방법을 제공하지 않습니다.
이 버그 ^가 win32에서 파생 되었기 때문에 Windows 용 JNotify도 신뢰할 수 없습니다. JNotify는 win32를 사용합니다. 따라서 FileSystemWatcher ()와 다르지 않습니다.
나는 약간의 검색을했고, Windows와 비슷한 것을 본 기억이있는 것 같습니다. .NET 용 FileSystemWatcher 가 있습니다 . 주로 NT 또는 XP 이상입니다.
Java 파일 알림 라이브러리 사용해보기