2013-03-23 38 views
1

我有一個php腳本監視器爲新/更改的文件監視webdav目錄。 但是當目錄中有任何操作時,inotify只會返回一個臨時名稱(.davfs.tmp251671)。而不是實際的文件名。如何使用webdav從inotify獲取真實姓名

是否有任何更改,我可以從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
所以顯示在PHP手冊站點在至極順序不正確。
我現在使用add_watch的數值128。它的工作原理!

+0

有同樣的問題。 128是'IN_MOVED_TO',這就是給你真實文件名的事件。基本上創建一個臨時目錄('IN_CREATE'),然後重命名('IS_MOVED_FROM'和'IS_MOVED_TO',都使用相同的cookie)。所以檢查兩個重命名事件,最後一個給你的真實姓名 – 2013-07-23 01:19:50

相關問題