我已递归单个卷上的文件夹,并检索文件名,基准计数和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计数可以是一个内部。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top