From 97cd6424fd950b225fed3402499824d2a382a722 Mon Sep 17 00:00:00 2001 From: David Evans Date: Sat, 21 Jan 2017 18:29:28 +0000 Subject: [PATCH] Added changes left out in last commit. Users can now provide a callback to retrieve real-time statistics on the progress of zipping files. --- SSZipArchive/SSZipArchive.m | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/SSZipArchive/SSZipArchive.m b/SSZipArchive/SSZipArchive.m index 71cd042..456fbbd 100755 --- a/SSZipArchive/SSZipArchive.m +++ b/SSZipArchive/SSZipArchive.m @@ -537,8 +537,10 @@ // use a local filemanager (queue/thread compatibility) fileManager = [[NSFileManager alloc] init]; NSDirectoryEnumerator *dirEnumerator = [fileManager enumeratorAtPath:directoryPath]; + NSArray *allObjects = dirEnumerator.allObjects; + NSUInteger total = allObjects.count, complete = 0; NSString *fileName; - while ((fileName = [dirEnumerator nextObject])) { + for (fileName in allObjects) { BOOL isDir; NSString *fullFilePath = [directoryPath stringByAppendingPathComponent:fileName]; [fileManager fileExistsAtPath:fullFilePath isDirectory:&isDir]; @@ -560,6 +562,10 @@ [zipArchive writeFileAtPath:tempFilePath withFileName:tempFileFilename withPassword:password]; } } + complete++; + if (progressHandler) { + progressHandler(complete, total); + } } success = [zipArchive close]; }