- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个实用程序,它会遍历 Cocoa 上的目录树,并尝试检测自该目录上次与备份位置同步以来发生的更改。
当我最初同步文件和文件夹时,我获取 NSFileSystemFileNumber 并将其存储在该文件或文件夹的数据库记录中:
NSString *oldFilePath = /* ... */;
NSError *error = nil;
NSDictionary *attributes = [[NSFileManager defaultManager] attributesOfItemAtPath:oldFilePath error:&error];
/* set database record for oldFilePath to [attributes fileSystemFileNumber] */
当我遇到新文件或文件夹时,我首先使用 NSFileSystemFileNumber 进行数据库查找以查找原始文件(如果有)。
但是,如果文件已编辑并从父目录移动到子目录,并且我试图检测对父目录的更改,我希望能够使用保存的 NSFileSystemFileNumber 来识别新的路径,以便我可以区分移动、删除和更新。
有其他解决方案可以解决这个问题吗?
感谢任何帮助..!!
最佳答案
没有直接的方法可以做到这一点。 NSFileSystemFileNumber
只是文件的inode。多个目录中的同一个 inode 可以有多个目录条目 - 即一个文件可以出现在多个位置,并且在这些位置具有不同的名称。因此从 inode 到路径的映射不是一对一的,它可能会产生路径的集合。
解决问题的典型解决方案是使用命令 find(1)
或库函数(例如 fts
系列)来遍历文件系统并产生一个映射。然而,对于您的情况,听起来您的数据库应该可以通过 inode 号进行搜索,您已经将其存储在记录中,因此您不需要每次都遍历树来生成映射。
HTH
关于objective-c - 是否有任何函数可以检索与 NSFileSystemFileNumber 关联的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30191016/
我正在编写一个实用程序,它会遍历 Cocoa 上的目录树,并尝试检测自该目录上次与备份位置同步以来发生的更改。 当我最初同步文件和文件夹时,我获取 NSFileSystemFileNumber 并将其
当使用 attributesOfItemAtPath:error: 时,NSFileSystemFileNumber 是否始终保证对于设备是唯一的? 例如,我有一个具有特定 NSFileSystemF
我正在开发文件管理系统,就像Dropbox在Cocoa中一样。 我的问题是当我编辑任何文本文件时NSFileSystemFileNumber发生更改。 我想要一个唯一的NSFileSystemFi
我是一名优秀的程序员,十分优秀!