NSFileManager文件大小对于.xcodeproj文件不正确

时间:2018-12-30 02:44:01

标签: objective-c nsfilemanager

从Mac Finder应用程序中,我知道我的文件PicViewer.xcodeproj的文件大小为35697字节。下面的代码为我提供了160个文件大小。我知道该代码可以正常显示Excel文件的大小。

我使用了这个stackoverflow问题How can i get my file size in 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(并且我怀疑这会导致错误报告文件大小)。例如:

Exercise Record.xlsx NSFileTypeRegular 637131

PicViewer.xcodeproj NSFileTypeDirectory 160

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

xcodeproj确实是目录,您可以使用Show package content(或任何我不使用英文MacOS)菜单命令在Finder中扩展其内容,因此在计算其大小时,您可以应该以递归方式执行,例如that