为什么有与相同的inode比引用计数显示更多的文件/硬链接?
-
19-09-2019 - |
题
我已递归单个卷上的文件夹,并检索文件名,基准计数和inode编号的列表,使用
的NSFileManager attributesOfItemAtPath
和的NSDictionary fileSystemFileNumber和objectForKey:NSFileReferenceCount
出于某种原因,我得到的结果,例如为10的引用计数,但许多超过10文件具有相同的inode编号的列表。
值得注意的是,我不包括我的列表中的符号链接,我只是记录一个文件时,[字典的fileType] == NSFileTypeRegular
任何想法,为什么这可能是这种情况?
编辑:@Peter Hosey,我正在写该inode和引用计数如下:
CLMFileManagedObj *clmf;
clmf = (CLMFileManagedObj *)[NSEntityDescription insertNewObjectForEntityForName:@"CLMFile" inManagedObjectContext:moc];
NSUInteger fsfn = [dict fileSystemFileNumber];
[clmf setValue:[NSNumber numberWithUnsignedInteger:fsfn] forKey:@"iNodeNumber"];
[clmf setValue:(NSNumber*)[dict objectForKey:NSFileReferenceCount] forKey:@"referenceCount"];
请注意iNodeNumber和referenceCount正在写入略有不同的原因是[字典]提供了一个直接(NSUInteger)fileSystemFileNumber得到法,而fileReferenceCount需要使用密钥进行检索(根据任何帮助,我能找到的NSDictionary )
的CLMFile实体的两个属性是诠释64.从我可以告诉,NSUInteger的类型依赖于运行32或64位模式下,但[NSNumber的numberWithUnsignedInteger]是否接受NSUInteger作为参数,所以我假定它涉及在任一模式下正确数目。
我无法看到在活动监视器它说,无论是32/64位。我认为无论对Xcode中默认3.1.3项目。
这是可能的,我在这里的东西,因为我比较新的到Mac /的OBJ-C /的XCode /可可,所以任何帮助/指针将不胜感激。有经验的程序员,但不是在此环境中(虽然学习一样快,我可以....)
解决方案
您看Time Machine备份?是否有目录的硬链接参与?
如果目录A含有目录B1和B2被硬链接,具有相同索引节点文件。将B1和B2,然而ref计数可以是一个内部。