У меня есть функция, которая проверяет размер нескольких файлов plist в каталоге / User / Library / Preferences /.Для тестирования я использую iTunes, который на моем компьютере имеет файл настроек ~ 500 КБ.
РЕДАКТИРОВАТЬ: я исправил свой код в соответствии с ответом - после публикации этот код работает правильно.
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. Не 102 КБ, а просто 102. Я использовал objectForKey: NSFileSize, я использовал stringValue, все 102.
Как указано в выбранном ответе ниже, урок заключается в том, чтобы всегда проверять путь, который вы отправляете в NSFileManager.
Спасибо!