計算ios某個路徑下文件的大小

首先調用這個方法
[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; //得到總大小並且返回 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章