iOS 快速计算目录的size


diskMode为YES时是指占用磁盘的空间(磁盘占用空间与文件的实际大小一般是不一样的)

+ (uint64_t)sizeAtPath:(NSString*)filePath diskMode:(BOOL)diskMode

{

uint64_t totalSize =0;

NSMutableArray*searchPaths = [NSMutableArrayarrayWithObject:filePath];

while([searchPaths count] >0)

{

@autoreleasepool

{

NSString*fullPath = [searchPaths objectAtIndex:0];

[searchPaths removeObjectAtIndex:0];

structstat fileStat;

if(lstat([fullPath fileSystemRepresentation], &fileStat) ==0)

{

if(fileStat.st_mode& S_IFDIR)

{

NSArray*childSubPaths = [[NSFileManagerdefaultManager] contentsOfDirectoryAtPath:fullPath error:nil];

for(NSString*childIteminchildSubPaths)

{

NSString*childPath = [fullPath stringByAppendingPathComponent:childItem];

[searchPaths insertObject:childPath atIndex:0];

}

}else

{

if(diskMode)

totalSize += fileStat.st_blocks*512;

else

totalSize += fileStat.st_size;

}

}

}

}

returntotalSize;

}

转载:快速计算目录的size // 老谭笔记 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 关于目录的size计算,我在网上查了很多种方式去实现过,最常见的就是通过递归方式去逐层计算,但通过测试发现在计算层...
    梦之旅_e217阅读 2,929评论 0 0
  • 1、禁止手机睡眠 [UIApplicationsharedApplication].idleTimerDisabl...
    小热狗阅读 4,451评论 0 2
  • 1、改变 UITextField 占位文字 颜色和去掉底部白框 [_userName setValue:[UICo...
    i_MT阅读 4,719评论 0 2
  • 我趴在阳台上,从上往下看去,一个黑黑瘦瘦的小女孩映入我的眼帘,有两颗透黑的眼珠在水汪汪的海洋中悠扬着。从那一刻我便...
    有一只小熊阅读 1,441评论 0 0
  • 1.经常翻看行业最新app,思考为什么会有这样的想法和创意; 2.看到新鲜事物,不要从消费者的立场考虑,站在产品设...
    狗狗姐阅读 1,607评论 0 0

友情链接更多精彩内容