ZIP-файл в NSData
Здравствуйте, у меня проблемы с zip-файлами, дело в том, что я отправляю несколько.zip-файлов через CFSocket
, но во время записи файла обратно на сервер он поврежден или каждый раз, когда я нажимаю на него, появляются несколько zip-файлов, размер которых не совпадает. я попробовал это для создания почтового индекса, и это работает, также я передаю это NSData
Я не понимаю, может кто-нибудь помочь мне, пожалуйста?
- (IBAction)zipButton:(id)sender {
BOOL isDir=NO;
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSArray *subpaths;
NSString *toCompress = @"/Departures/";
NSString *pathToCompress = [documentsDirectory stringByAppendingPathComponent:toCompress];
NSString *zipFilePath = [documentsDirectory stringByAppendingPathComponent:@"/Departures/textFiles.zip"];
NSData *zipData;
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:pathToCompress isDirectory:&isDir] && isDir){
subpaths = [fileManager subpathsAtPath:pathToCompress];
} else if ([fileManager fileExistsAtPath:pathToCompress]) {
subpaths = [NSArray arrayWithObject:pathToCompress];
}
ZipArchive *za = [[ZipArchive alloc] init];
[za CreateZipFile2:zipFilePath];
if (isDir) {
for(NSString *path in subpaths){
NSString *fullPath = [pathToCompress stringByAppendingPathComponent:path];
if([fileManager fileExistsAtPath:fullPath isDirectory:&isDir] && !isDir){
[za addFileToZip:fullPath newname:path];
zipData=[NSData dataWithContentsOfFile:fullPath];
}
}
} else {
[za addFileToZip:pathToCompress newname:toCompress];
}
}
и я пишу это обратно следующим образом:
[zip writeToFile: videos.zip atomically:YES];