我已經使用mac文件系統事件API在C++中創建了一個簡單的文件系統觀察器,如下所示:apple developer doc。我的問題在標題中。我如何獲得改變的事物的路徑? eventPaths數組僅給出了我實際上正在觀察的父目錄(或其集合)的路徑。但不是被修改的底層目錄條目。是否有可能從FSEvent ID獲取文件名?
我可以使用回調,即:
static void mycallback(
ConstFSEventStreamRef streamRef,
void *clientCallBackInfo,
size_t numEvents,
void *eventPaths,
const FSEventStreamEventFlags eventFlags[],
const FSEventStreamEventId eventIds[])
我在想,也許名字可以從這些項目中的一個被提取搶有用的信息?
編輯:
例如,我們可以找到一個文件在這種情況下,
kFSEventStreamEventFlagItemCreated
提高創建。但是,我應該如何去獲取該物品的實際名稱? (與其他事件類似,例如刪除項目等)。
編輯2:
我開始認爲,這將是不可能的做我想做的。 From FS tech overview:
「重要的一點是,通知的粒度在目錄級別,它告訴你只有目錄中的內容發生了變化,但不會告訴你發生了什麼變化。」
又名。開溜。
乾杯,
本。
真的嗎?輝煌!謝謝! :-)我看看.. –
正是我想要的。你知道是否有可能限制搜索過程的深度,就像探索的子目錄的數量一樣?乾杯。 –
不是我所知道的。我認爲你必須手動完成。 – Kat