【发布时间】:2014-09-15 23:16:33
【问题描述】:
我正在编写一个实用程序,它在 Mac OS X(10.6 和更高版本)上遍历目录树,并尝试检测自从目录上次与备份位置同步以来发生的更改。
当我最初同步文件和文件夹时,我会获取 inode 编号并将其存储在该文件或文件夹的数据库记录中:
NSString *oldFilePath = /* ... */;
NSError *error = nil;
NSDictionary *attributes = [[NSFileManager defaultManager] attributesOfItemAtPath:oldFilePath error:&error];
/* set database record for oldFilePath to [attributes fileSystemFileNumber] */
当我遇到新文件或文件夹时,我首先使用索引节点号进行数据库查找以找到原始文件(如果有)。
但如果文件已从父目录移动到子目录,并且我正在尝试检测对父目录的更改,我希望能够使用保存的 inode 编号来识别新路径这样我就可以区分移动和删除。
【问题讨论】:
-
这个解决方案适合你吗?
-
@ParagBafna 我不再使用该产品,但接受的答案解决了我的问题。
标签: objective-c macos inode