`

使用Objetive-zip读取zip文件

阅读更多

版权所有,欢迎转载,转载请注明 : SinFrancis  http://mdev.cc 

 

使用Objective-zip的库读取zip文件,地址:http://code.google.com/p/objective-zip/

 

可以在iphone上进行运行.

 

简单的测试代码:

 

#import <Foundation/Foundation.h>
#import "Objective-Zip/ZipFile.h"
#import "Objective-Zip/ZipException.h"
#import "Objective-Zip/FileInZipInfo.h"
int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    // insert code here...
    NSLog(@"Hello, World!");
	
	//初始化目录
	NSString *documentsDir= [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
	NSString *filePath= [documentsDir stringByAppendingPathComponent:@"5.zip"];
	//此文件在zip包中,我们就读取此文件
	NSString *f = @"META-INF/container.xml";
	
	@try {
	
	ZipFile *unzipFile= [[ZipFile alloc] initWithFileName:filePath mode:ZipFileModeUnzip];
	NSArray *infos= [unzipFile listFileInZipInfos];
		
		FileInZipInfo *currentInfo=Nil;
		
		//列出所有在zip中的文件信息
	for (FileInZipInfo *info in infos) {
		//@"- %@ %@ %d (%d)"
		NSString *fileInfo= [NSString stringWithFormat:@"%@", info.name, info.date, info.size, info.level];
		if([fileInfo isEqualToString:f]){

			NSLog(@"%@",fileInfo);		
	
			
		}
			NSLog(@"%@",fileInfo);	
				
	}
	
		//直接定位到要读取的文件
	if([unzipFile locateFileInZip:f]){
			
			//取得读取文件流
		ZipReadStream *read2= [unzipFile readCurrentFileInZip];
		currentInfo = [unzipFile getCurrentFileInZipInfo];
		
		//开始进行读取
		NSMutableData *data2= [[[NSMutableData alloc] initWithLength:currentInfo.length] autorelease];
		int bytesRead2= [read2 readDataWithBuffer:data2];
			
		NSLog(@"SIZE IS:%d,Read size is :%d",currentInfo.length,bytesRead2);
			
		NSString *fileText2= [[[NSString alloc] initWithBytes:[data2 bytes] length:bytesRead2 encoding:NSUTF8StringEncoding] autorelease];
		NSLog(@"%@",fileText2);
	
		}

		
		[unzipFile release];
	} @catch (ZipException *ze) {
		
		NSLog(@"ZipException caught: %d - %@", ze.error, [ze reason]);
		
	} @catch (id e) {
			
		NSLog(@"Exception caught: %@ - %@", [[e class] description], [e description]);
	}
	
    [pool drain];
    return 0;
}
 
分享到:
评论
1 楼 xiao0556 2010-08-21  
最近想学习IPHONE开发了,怎么样发现IPHONE开发的贴子这么少啊?为啥呢?

相关推荐

    支持各种编程语言公历(阳历) 农历(阴历)转换

    公历(阳历) 农历(阴历)转换,支持时间段从 1900-2100 如果需要更长的时间段,利用 generate.htm 生成的数据即可。 支持各种编程语言 C#,java,Objective-C,php,Python,...支持 Mac,Windows,Android,WP 多种平台

    Objective C基础教程(第2版

    都是用Objetive-C 写成,所以MacOS X上的开发最佳语言自然也就是Objective-C 了。 Object-C是由 Brad Cox在80年代初在第一个纯面向对象语言Smalltalk基础上写成。后来他创立了StepStone公司从事Objective-C的...

    TopTabControl:类似于网易新闻主界面中切换菜单的一个空间,定制自由度高。(a custom tab menu switch control)

    使用arc,xcode6.1 编译1、点击菜单自定切换内容页面2、滑动内容页面菜单自动剧中3、用户只需要关注菜单的展示和页面的展示就行了Objetive-C下面是协议:/** @brief TopTabControl datasource 需要支持的协议 */@...

    github-user-fetcher-ios

    目标开发一个移动应用程序,... 带有回购协议的URL: ://api.github.com/search/repositories q language:Java sort stars page 如果要测试iOS位置,则可以使用Swift和/或Objetive-C。 对于Android,请使用Java。

    objetive C Iphone 开发指南集锦

    我搜集的objective c,iphone开发资料集锦,打包下载,包含: Programming+in+Objective-C+2.0.pdf BecomeAnXcoder(SChinese).pdf 如何搭建iPhone程序开发环境+.doc IPhone+1.1.4开发环境配置说明.pdf ...

    Objective-C程序设计(第4版)

    这是Objective-C程序设计(第4版)pdf版的,里面有我自己看过后做的笔记之类的,希望在大家阅读感到不清楚的时候能够提供大家一些帮助。

    pureMVC code

    在压缩包文件"PureMVC_ObjectiveC_1_1"中,你将找到PureMVC Objective-C版本的特定版本(1.1)的代码库。这个版本可能包含了框架的核心组件,如MultiCore模块,它为应用程序的各个部分提供基础支持,包括模型、视图...

    pureMVC开源框架,一个使用该框架的测试程序

    **PureMVC 开源框架详解** PureMVC 是一个轻量级、跨平台的框架,设计用于构建模型-视图-控制器(Model-View-Controller,MVC)结构的应用程序。它采用简单而强大的概念,使得开发者能够更高效地组织和管理代码,...

    gui2py, 简单而强大的用于敏捷开发的GUI框架.zip

    gui2py, 简单而强大的用于敏捷开发的GUI框架 gui2pygui2py是一个使用 python 语言和wxPython工具包在 Windows 。Mac OS X 和Linux上构建跨平台"视觉"桌面应用程序的GUI框架。它的objetive是发展 PythonCard 与web

    下拉列表的实现20190108_Objective-C_ios_OC语言_下拉列表_

    **使用UITableView实现下拉列表** 1. **创建UITableView**:在Xcode中,拖拽一个`UITableView`到你的视图控制器(UIViewController)上,或者在代码中动态创建并添加到视图上。 ```objc UITableView *tableView = ...

    Notifications10ObjC:iOS 10 Objective-C中的推送通知

    iOS 10中的推送通知[Objective-C] ...###在AppDelegate文件中导入UserNotifications.framework # import 还添加UNUserNotificationCenterDelegate。 # import @interface AppDelegate : UIResponde

    plyprotobuf:用于PLY的协议缓冲区词法分析器

    使用此库,您可以使用Python创建和处理协议缓冲区文件的树。 有关用法示例,请参见demo.py 我的用例: .proto文件的自动重构。 该项目的好处是支持轻松重构协议缓冲区文件。 根据解析结果,可以简单地确定特定...

    计算机视觉技术的研究与应用.pdf

    计算机视觉技术的研究 objetive 是使计算机具备人体的视觉机能,研究者利用相机等成像设备结合图像处理软件进而使计算机可以模拟人类的视觉。早期计算机视觉与图像处理、模式识别并没有明确的划分,泛指一切使 用...

Global site tag (gtag.js) - Google Analytics