我有一个功能可以检查/ User / Library / Preferences /目录中几个plist文件的大小。为了进行测试,我使用的是iTunes,我的机器上的iTunes的首选项文件约为500kb。
编辑:我已经按照答案更正了我的代码-发布后,此代码正常工作。
NSString *obj = @"iTunes";
NSString *filePath = [NSString stringWithFormat:@"/Applications/%@.app",obj];
NSString *bundle = [[NSBundle bundleWithPath:filePath] bundleIdentifier];
NSString *PropertyList=[NSString stringWithFormat:@"/Preferences/%@.plist",bundle];
NSString* fileLibraryPath = [[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingString:PropertyList];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:fileLibraryPath];
if (fileExists) {
NSError *err = nil;
NSDictionary *fattrib = [[NSFileManager defaultManager] attributesOfItemAtPath:fileLibraryPath error:&err];
if (fattrib != nil){
//Here I perform my comparisons
NSLog(@"%i %@", [fattrib fileSize],obj);
}
}
但是,无论我做什么,大小都将返回为102。不是102kb,而是102。我使用了objectForKey:NSFileSize,我使用了stringValue,全都是102。
如下面所选答案中所述,汲取的教训是,始终检查要提交给NSFileManager的路径。
谢谢!
最佳答案
您正在使用的filePath
NSDictionary *fattrib = [ ... attributesOfItemAtPath:filePath error:&err];
似乎
/Applications/iTunes.app
在我的系统上,该目录的大小为102字节,与
/Applications/Mail.app
-102字节相同。只是路径不是您想要的吗?关于objective-c - NSFileManager FileSize问题- cocoa OSX,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4740897/