Определить размер папки - PullRequest
0 голосов
/ 28 января 2012

С помощью этого кода я определяю размер файла, если установлен флажок NSOnState, но значение папки всегда равно 0. Каталог правильный. Вы можете мне помочь?

unsigned long long resultsize=0;
if(imagehistoryS.state == NSOnState) {
    NSString *path = [NSString stringWithFormat:@"Users/Giovanni/Desktop/test", [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0]];     
    NSNumber *fileSize = [[[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil] objectForKey:NSFileSize];
    resultsize += [fileSize doubleValue];
}
[result setStringValue:[NSString stringWithFormat:@"Total size items selected: %f", resultsize]];

Ответы [ 2 ]

1 голос
/ 28 января 2012

Вы передаете строку и все же указываете NSUserDomainMask. Я попробовал это, и это работает.

NSUInteger resultSize = 0;

NSFileManager *fm = [[NSFileManager alloc] init];

NSURL *LibraryURL = [[fm URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask] lastObject];
NSURL *previewsURL = [LibraryURL URLByAppendingPathComponent:@"/Caches/com.apple.Safari/Webpage Previews"];

resultSize = [[[fm attributesOfItemAtPath:[previewsURL path] error:nil] objectForKey:NSFileSize] unsignedIntegerValue];

NSLog(@"Size: %lu", resultSize);

Это для среды ARC.

Обратите внимание, я использую NSURLs вместо файловых путей NSString в максимально возможной степени. Кроме того, вам не нужно жестко кодировать имя пользователя в пути поиска.

Обновлено, чтобы показать конкретную папку в соответствии с запросом в комментариях

0 голосов
/ 28 января 2012

В вас stringWithFormat вам не хватает спецификатора формата %@.

...