c语言 实现
#include "sys/stat.h"
- (long long) fileSizeAtPath:(NSString*) filePath{
struct stat st;if(lstat([filePath cStringUsingEncoding:NSUTF8StringEncoding], &st) == 0){
return st.st_size;
}
return 0;
}
objective-c 语言实现
-(long long) fileSizeAtPath:(NSString*) filePath{
NSFileManager* manager = [NSFileManager defaultManager];
if ([manager fileExistsAtPath:filePath]){
return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
}
return 0;
}
如果将两种方法循环1000次,我们就可以发现两者之间巨大的性能差距了,在我的测试环境中,结果如下,c函数的耗时仅是第一种方法的5%,在此推荐 c语言
一个空的文件夹 其中获取大小为68k ,应该是系统文件吧,如果知道的人,欢迎留言
本文提供了两种方法来获取文件的大小:一种使用C语言结合系统调用lstat,另一种使用Objective-C通过NSFileManager。测试显示,C语言的方法性能显著优于Objective-C方法。
1157

被折叠的 条评论
为什么被折叠?



