IOS下载资源zip到本地然后读取

举报
清雨小竹 发表于 2022/09/25 00:53:02 2022/09/25
【摘要】 欢迎访问我的接口小站:www.chinadev.cn 思路是 1.ios下载服务器上的zip资源包(图片,声音等经过zip压缩的资源包)到本地 2.解压zip到程序目录 3.从程序目录加载资源文件 一、下载zip资源 -(NSString*)DownloadTextFile:(NSString*)fileUrl ...

欢迎访问我的接口小站:www.chinadev.cn

思路是

1.ios下载服务器上的zip资源包(图片,声音等经过zip压缩的资源包)到本地

2.解压zip到程序目录

3.从程序目录加载资源文件


一、下载zip资源


  
  1. -(NSString*)DownloadTextFile:(NSString*)fileUrl fileName:(NSString*)_fileName
  2. {
  3. NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);//使用C函数NSSearchPathForDirectoriesInDomains来获得沙盒中目录的全路径。
  4. NSString *ourDocumentPath =[documentPaths objectAtIndex:0];
  5. NSString *sandboxPath = NSHomeDirectory();
  6. NSString *documentPath = [sandboxPath stringByAppendingPathComponent:@"TestDownImgZip.app"];//将Documents添加到sandbox路径上//TestDownImgZip.app
  7. NSString *FileName=[documentPath stringByAppendingPathComponent:_fileName];//fileName就是保存文件的文件名
  8. NSFileManager *fileManager = [NSFileManager defaultManager];
  9. // Copy the database sql file from the resourcepath to the documentpath
  10. if ([fileManager fileExistsAtPath:FileName])
  11. {
  12. return FileName;
  13. }else
  14. {
  15. NSURL *url = [NSURL URLWithString:fileUrl];
  16. NSData *data = [NSData dataWithContentsOfURL:url];
  17. [data writeToFile:FileName atomically:YES];//将NSData类型对象data写入文件,文件名为FileName
  18. }
  19. return FileName;
  20. }



2.解压zip包


  
  1. - (void)OpenZip:(NSString*)zipPath unzipto:(NSString*)_unzipto
  2. {
  3. ZipArchive* zip = [[ZipArchive alloc] init];
  4. if( [zip UnzipOpenFile:zipPath] )
  5. {
  6. BOOL ret = [zip UnzipFileTo:_unzipto overWrite:YES];
  7. if( NO==ret )
  8. {
  9. NSLog(@"error");
  10. }
  11. [zip UnzipCloseFile];
  12. }
  13. [zip release];
  14. }


3.调去函数


  
  1. - (IBAction)ShowImg:(id)sender {
  2. NSString *filePath = [self DownloadTextFile:@"http://www.xtox.net/img.zip" fileName:@"img.zip"];
  3. NSLog(filePath);
  4. NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);//使用C函数NSSearchPathForDirectoriesInDomains来获得沙盒中目录的全路径。
  5. NSString *ourDocumentPath =[documentPaths objectAtIndex:0];
  6. NSString *sandboxPath = NSHomeDirectory();
  7. NSString *documentPath = [sandboxPath stringByAppendingPathComponent:@"TestDownImgZip.app"];//将Documents添加到sandbox路径上//TestDownImgZip.app
  8. [self OpenZip:filePath unzipto:documentPath];
  9. self.imgView.image = [UIImage imageNamed:@"img/1.png"];
  10. }


文章来源: zzzili.blog.csdn.net,作者:清雨小竹,版权归原作者所有,如需转载,请联系作者。

原文链接:zzzili.blog.csdn.net/article/details/9029025

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。