我正在編寫一個實用程序,它在Mac OS X(10.6及更高版本)上遍歷目錄樹,並嘗試檢測自目錄上次與備份位置同步以來發生的更改。是否有任何函數來檢索與inode相關聯的路徑?
當我最初同步的文件和文件夾,我獲得的inode編號,並將其存儲在該文件或文件夾的數據庫記錄:
NSString *oldFilePath = /* ... */;
NSError *error = nil;
NSDictionary *attributes = [[NSFileManager defaultManager] attributesOfItemAtPath:oldFilePath error:&error];
/* set database record for oldFilePath to [attributes fileSystemFileNumber] */
當我遇到一個新的文件或文件夾我首先做一個數據庫使用inode編號查找原始文件(如果有的話)。
但在文件已經從父目錄移動到子目錄,並且我正在嘗試檢測父目錄的更改時,我希望能夠使用保存的inode編號來標識新的路徑,以便我可以區分移動和刪除。
此解決方案是否適合您? – 2018-02-20 17:03:06
@ParagBafna我不再在那個產品上工作,但接受的答案解決了我的問題。 – 2018-02-23 15:16:42