У меня есть приложение, которое создает файл, сжимает его в ZIP-файл, а затем прикрепляет его к электронной почте. Но файл .zip содержит много каталогов перед фактическим файлом. Начиная с «/», которая является безымянной папкой и выглядит невидимой для людей, получающих ее. Каталог верхнего уровня «/», то следующий уровень «ком» ...
/var/mobile/Applications/CDA16BB231BDABABBA/Documents/data.txtСтруктура папки Objective-Zip ios
Как я могу удалить все каталоги и имеют. zip-файл содержит только файл?
Вот код, который я использовал ...
NSError *error;
NSString *documentsDirectory = [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents"];
NSString *filePath = [documentsDirectory
stringByAppendingPathComponent:@"data.txt"];
NSLog(@"string to write:%@",printString);
[printString writeToFile:filePath atomically:YES
encoding:NSUTF8StringEncoding error:&error];
////ZIP FILE/////
NSString *zipfilePath = [documentsDirectory stringByAppendingPathComponent:@"data.zip"];
[[NSFileManager defaultManager] removeItemAtPath: zipfilePath error: &error];
ZipFile *zipFile = [[ZipFile alloc]initWithFileName:zipfilePath mode:ZipFileModeCreate];
NSDictionary *attributes = [[NSFileManager defaultManager]attributesOfItemAtPath:zipfilePath error:&error];
NSDate *Date = [attributes objectForKey:NSFileCreationDate];
ZipWriteStream *stream = [zipFile writeFileInZipWithName:filePath fileDate:Date compressionLevel:ZipCompressionLevelBest];
NSData *data = [NSData dataWithContentsOfFile:filePath];
[stream writeData:data];
[stream finishedWriting];
[zipFile close];
подавшая жалобу прекратилось. Благодаря! – Mark
Это сбивает с толку, потому что сначала вы не понимаете, что «имя» - это просто имя. Вы можете назначить произвольное имя файлу внутри zip. * Данные * поступают из ZipWriteStream, но * имя * зависит от вас. – matt