您的位置:首页 > 移动开发 > IOS开发

计算ios某个路径下文件的大小

2014-05-30 14:18 501 查看
首先调用这个方法

[self getMPSize]

-(NSString *)getMPSize {
NSString*sizeTypeW = @"bytes";


NSString * cachesString = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];


NSString * imageFileString = [cachesString stringByAppendingPathComponent:@"DownloadImages"]; NSLog(@"====--------%@",imageFileString);
//这里是获得你的路径
NSFileManager *manager = [NSFileManager defaultManager];


long long app = [self folderSize:cachesString];
// 先计算总路径总大小
if([manager fileExistsAtPath:imageFileString] == YES){//判断你的子路径存不存在
long long working = [self folderSize:imageFileString];//存在就调用这个方法获得文件的大小
NSLog(@"-----------------------%llu",working);


if(working<1){
//从这里开始是计算文件大小
return @"Size: Zero KB";


}else{


if (working > 1024) {


//Kilobytes working = working / 1024; sizeTypeW = @" KB";


}


if (working > 1024) {


//Megabytes


working = working / 1024;


sizeTypeW = @" MB"; }


if (working > 1024) {


//Gigabytes


working = working / 1024;


sizeTypeW = @" GB"; }


return [NSString stringWithFormat:@" Working: %lld %@ ", working,sizeTypeW]; }


}else{
return [NSString stringWithFormat:@"App: %lld MB, Working: Zero KB",app/1024/1024];

}


[manager release]; }
//存在就调用这个方法获得文件的大小

- (unsigned long long int)folderSize:(NSString *)folderPath { //根据传过来的文件路径
NSArray *filesArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:folderPath error:nil]; //这是找到所有的文件夹
NSEnumerator *filesEnumerator = [filesArray objectEnumerator]; //遍历文件夹
NSString *fileName;


unsigned long long int fileSize = 0;


while (fileName = [filesEnumerator nextObject]) {


NSDictionary *fileDictionary = [[NSFileManager defaultManager] attributesOfItemAtPath:[folderPath stringByAppendingPathComponent:fileName] error:nil];


fileSize += [fileDictionary fileSize]; //得到总的大小 }


return fileSize;
//得到总大小并且返回 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: