2013-03-23 3 views
1

У меня есть php-скрипт, который контролирует каталог webdav для новых/измененных файлов. , но при любом действии в каталоге inotify возвращается только имя temp (.davfs.tmp251671). а не фактическое имя файла.Как получить реальное имя от inotify с помощью webdav

Есть ли какие-либо изменения, я могу получить реальное имя файла из inotify и webdav?

ответ

1

найдено Решение.
Я использовал IN_CREATE (и для тестирования IN_CLOSE) в качестве триггеров
, но это дало мне приведенный выше результат. временное имя ..
поэтому я использовал IN_ALL_EVENTS для тестирования.
и обнаружил, что маска 128 дала имя файла.
но ...
согласно http://www.php.net/manual/en/inotify.constants.php
IN_MOVED_FROM = 64
, но при тестировании IN_CREATE дал 256
так что порядок в Wich отображаются на сайте PHP Manual неверен.
Теперь я использую числовое значение 128 для add_watch. и это работает!

+0

Был такой же вопрос. 128 - 'IN_MOVED_TO', и это событие дало вам реальное имя файла. В основном создается temp dir ('IN_CREATE'), а затем переименовывается (' IS_MOVED_FROM' и 'IS_MOVED_TO', как с тем же файлом cookie). Поэтому проверьте два события переименования, последнее дает вам настоящее имя –