Размер файла NSFileManager Неверно для файла .xcodeproj - PullRequest
0 голосов
/ 30 декабря 2018

Из приложения Mac Finder я знаю, что мой файл PicViewer.xcodeproj имеет размер файла 35 697 байт.Приведенный ниже код дает мне размер файла 160. Я знаю, что код работает, так как он правильно сообщает мне размер файла Excel.

Я использовал код из этого вопроса stackoverflow Как я могу получитьмой размер файла в Objective-C с небольшим изменением.

NSString *directoryPath = [@"~" stringByExpandingTildeInPath];
NSFileManager *fm = [NSFileManager defaultManager];
NSArray *array = [fm contentsOfDirectoryAtPath: directoryPath error:NULL];
for (NSString *filename in array) {
    NSError *attributesError = nil;
    NSDictionary *attributes = [fm attributesOfItemAtPath:[directoryPath stringByAppendingPathComponent:filename]
                                                    error:&attributesError];
    unsigned long long size = [attributes fileSize];
    NSString *filetype = [attributes fileType];
    NSLog(@"%@ %@ %llu", filename, filetype, size);
}

Он также сообщает, что тип файла - NSFileTypeDirectory, а не NSFileTypeRegular (и я подозреваю, что это приводит к неправильному сообщению о размере файла).Например:

Упражнение Record.xlsx NSFileTypeRegular 637131

PicViewer.xcodeproj NSFileTypeDirectory 160

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 30 декабря 2018

xcodeproj действительно каталог, вы можете расширить его содержимое в Finder, используя команду меню Show package content (или что-то еще, я не использую английский MacOS), так что если вы хотите рассчитать его размер, вы должны сделать это рекурсивнонапример, , что

...