2013-03-23 3 views
1

나는 PHP 스크립트 마녀가 새/변경된 파일에 대한 webdav 디렉토리를 모니터하고 있습니다. 디렉터리에 작업이있을 때 inotify는 임시 이름 (.davfs.tmp251671) 만 반환합니다. 실제 파일 이름이 아닙니다.webdav와 함께 inotify에서 실제 이름을 얻는 방법

내가 inotify 및 webdav에서 실제 파일 이름을 가져올 수있는 변경 사항이 있습니까?

답변

1

found 용액.
나는 IN_CREATE (및 IN_CLOSE 테스트 용)를 트리거로 사용했습니다
하지만 위 결과가 나에게 주어졌습니다. 임시 이름 ..
그래서 테스트를 위해 IN_ALL_EVENTS를 사용했습니다.
그리고 마스크 128이 파일의 실제 이름을 제공한다는 사실을 알게되었습니다. IN_CREATE을 테스트 http://www.php.net/manual/en/inotify.constants.php
IN_MOVED_FROM = 64
하지만 경우에 따라
하지만 ...

256이 그래서는 PHP 매뉴얼 사이트에 표시되는 느릅 나무의 순서가 잘못했다.
이제 add_watch에 숫자 값 128을 사용합니다. 그리고 그것은 작동합니다!

+0

같은 문제가있었습니다. 128은'IN_MOVED_TO'이며 실제 파일 이름을 알려주는 이벤트입니다. 기본적으로 temp 디렉토리가 생성되고 ('IN_CREATE') 이름이 변경됩니다 (IS_MOVED_FROM과 IS_MOVED_TO는 동일한 쿠키로 모두 이름이 바뀜). 두 가지 이름 바꾸기 이벤트를 확인하고 마지막으로 실제 이름을 부여합니다. –