.xcodeproj 文件的 NSFileManager 文件大小不正确

Posted

技术标签:

【中文标题】.xcodeproj 文件的 NSFileManager 文件大小不正确【英文标题】:NSFileManager filesize Incorrect for .xcodeproj File 【发布时间】:2018-12-30 02:44:00 【问题描述】:

从 Mac Finder 应用程序中,我知道我的文件 PicViewer.xcodeproj 的文件大小为 35,697 字节。下面的代码给了我一个 160 的文件大小。我知道代码可以正常工作,因为它正确地告诉了我 Excel 文件的文件大小。

我使用了这个 *** 问题 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】:

xcodeproj 确实是一个目录,你可以在 Finder 中使用Show package content (或者其他什么,我不使用英文 MacOS)菜单命令来扩展它的内容,所以如果你想计算它的大小,你应该递归地做,例如that

【讨论】:

谢谢,这有帮助。有没有办法区分文件夹和包目录? @Keith 我不这么认为,它实际上只是一个普通目录,它模仿具有类似文件的点分隔扩展名和相应的应用程序关联来处理此问题的文件 getResourceValue: forKey: NSURLIsPackageKey 让我能够区分普通文件夹和普通文件夹中的“包”文件夹包。

以上是关于.xcodeproj 文件的 NSFileManager 文件大小不正确的主要内容,如果未能解决你的问题,请参考以下文章

.xcodeproj 文件的 NSFileManager 文件大小不正确

多个Xcode,如何选择打开xcodeproj文件[关闭]

Xcode 工程文件“.xcodeproj”文件夹解析

iOS 工程文件(.xcodeproj)无法打开

无法在 XCode 4.3.2 中打开较旧的 .xcodeproj 文件

项目 ...xcodeproj 无法打开,因为它缺少其 project.pbxproj 文件