如何解压缩下载的数据并使用解压缩文件(index.html)中的特定文件加载到UIWebview中

时间:2015-08-12 09:54:10

标签: ios objective-c uiwebview gzip nsdata

我无法解压缩zip文件并从解压缩的内容(index.html)中获取一个paritcular文件,最后使用index.html加载UIWebview。

使用GZIP库解压缩正在下载的文件

[data gunzippedData];

用于使用GZIP解压缩数据的方法。

1 个答案:

答案 0 :(得分:0)

要从web解压缩文件,请使用以下代码。

在您的文件中添加ZipArchive.h和#import。

NSURL *urlVersion = [NSURL URLWithString: [tempDirOuter objectForKey:@"filename"]];
                             NSLog(@"txt File : %@",urlVersion);

                             NSError *error = nil;
                             // 2
                             NSData *data = [NSData dataWithContentsOfURL:urlVersion options:0 error:&error];
                             NSString *textFilePath;
                             if(!error)
                             {
                                 // 3
                                 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
                                 NSString *path = [paths objectAtIndex:0];
                                 NSString *strFileName = [tempDirOuter objectForKey:@"fileNameOnly"];
                                 NSString *zipPath = [path stringByAppendingPathComponent:strFileName];

                                 [data writeToFile:zipPath options:0 error:&error];

                                 ZipArchive *za = [[ZipArchive alloc] init];
                                 // 1
                                 if ([za UnzipOpenFile: zipPath])
                                 {
                                     // 2
                                     BOOL ret = [za UnzipFileTo: path overWrite: YES];
                                     if (NO == ret){} [za UnzipCloseFile];

                                     // 3
                                     NSString *StrName = [strFileName stringByReplacingOccurrencesOfString:@".zip" withString:@".txt"];
                                     textFilePath = [path stringByAppendingPathComponent:StrName];
                                 }
                                 if(!error)
                                 {
                                     // TODO: Unzip
                                 }
                                 else
                                 {
                                     NSLog(@"Error saving file %@",error);
                                 }
                             }
                             else
                             {
                                 NSLog(@"Error downloading zip file: %@", error);
                             }

                             NSString *webVersion = [NSString stringWithContentsOfFile:textFilePath encoding:NSASCIIStringEncoding error:nil];

在字符串webVersion中,您将获得html路径。