Aijaz Ali Aijaz Ali - 9 months ago 60
iOS Question

How to get file size of file from iPhone documents folder

I have in which i save video file in documents folder it works fine,but i want to get the file size of the saved file,I have searched but did not get result using NSfileManager,here is the code which i use for saving video.I want to get the file size and show it on UILabel.


NSURL*videoURL = [info objectForKey:UIImagePickerControllerMediaURL];

NSLog(@"found a video");

videoData = [[NSData dataWithContentsOfURL:videoURL] retain];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSDateFormatter *dateFormat = [[[NSDateFormatter alloc] init] autorelease];
[dateFormat setDateFormat:@"dd-MM-yyyy_HH:mm:SS"];
NSDate *now = [[[NSDate alloc] init] autorelease];
NSDate* theDate = [dateFormat stringFromDate:now];

NSString*myDate=[dateFormat stringFromDate:theDate];
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"Default Album"];

if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
[[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:nil];


NSString*testUser=[test stringByReplacingOccurrencesOfString:@" " withString:@""];

videopath= [[[NSString alloc] initWithString:[NSString stringWithFormat:@"%@/%@.mp4",documentsDirectory,testUser]] autorelease];

BOOL success = [videoData writeToFile:videopath atomically:NO];
NSLog(@"Successs:::: %@", success ? @"YES" : @"NO");
NSLog(@"video path --> %@",videopath);

NSURL *movieURL = [NSURL fileURLWithPath:videopath];
AVURLAsset *avUrl = [AVURLAsset assetWithURL:movieURL];
CMTime time1 = [avUrl duration];
int seconds = ceil(time1.value/time1.timescale);

// durationTime=[NSString stringWithFormat:@"%d",seconds];

// insertTime=[NSString stringWithFormat:@"%d",seconds];

NSString*messageA=[NSString stringWithFormat:@"You have recorded video of duration of %d seconds ",seconds];

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:messageA
delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];

AVAsset *asset = [AVAsset assetWithURL:movieURL];// url= give your url video here
AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc]initWithAsset:asset];
CMTime time = CMTimeMake(1, 5);//it will create the thumbnail after the 5 sec of video
CGImageRef imageRef = [imageGenerator copyCGImageAtTime:time actualTime:NULL error:NULL];
UIImage *thumbnail = [UIImage imageWithCGImage:imageRef];

Answer Source

Try this its help you

 NSDictionary *fileDictionary = [[NSFileManager defaultManager] fileAttributesAtPath:videopath traverseLink:YES];
     fileSize = [fileDictionary fileSize];