iphone - 下载 nsDocumentDirectory 中的 zip 文件,解压并阅读

标签 iphone objective-c cocoa

我在某个 URL 上有一个 .zip 文件,我想下载它、解压并将其保存到 nsdocument 目录中,而无需任何 UI 或用户交互。然后回读。

最佳答案

在 .h 文件中声明此变量

NSMutableData *responseData;

在 viewDidLoad 方法中写入此代码 此方法将开始从给定 URL 下载文件

NSURL *serverURL = [NSURL URLWithString:@"your file URL here"];
NSURLRequest *request = [NSURLRequest requestWithURL:serverURL];
NSURLConnection *cn = [NSURLConnection connectionWithRequest:request delegate:self];
[cn start];

在.m文件中实现此委托(delegate)方法

#pragma mark - NSURLConnection Delegate Methods
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
    NSLog(@"%s",__FUNCTION__);
    responseData = nil;
}

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    NSLog(@"%s",__FUNCTION__);
    responseData = [[NSMutableData alloc] initWithCapacity:0];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    NSLog(@"%s",__FUNCTION__);
    [responseData appendData:data];
}


- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSLog(@"%s",__FUNCTION__);

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docDirPath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
    NSString *filePath = [docDirPath stringByAppendingPathComponent:@"DownloadedZip.zip"];

    // Save file to Document Directory
    [responseData writeToFile:filePath atomically:YES];
    responseData = nil;
}

下载项目以取消存档 zip 文件 here并将文件保存到文档目录后放置取消存档代码

关于iphone - 下载 nsDocumentDirectory 中的 zip 文件,解压并阅读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15955372/

相关文章:

iphone - 在 main.m 中设置的自定义背景图像在整个应用程序中使用?

iphone - UIScrollView 对象问题

iphone - UISplitViewController - 有没有自定义实现的自动旋转方法?

objective-c - 如何正确计算两个 CGAffineTransform 矩阵之间的增量(差异)?

ios - NS字符串 : leak when assigning value to a property

ios - 有没有办法在联网时回拨?

objective-c - 在 Objective-C 中,是否有一种优雅的方法可以在对象的生命周期内执行一次代码?

ios - 如何创建一个简单的AVPlayer流媒体应用程序?

macos - 有没有办法在 Swift 中以编程方式设置 NSCollectionView?

objective-c - Mac 操作系统 cocoa : Draw a simple pixel on a canvas