我在URL上有一个.zip文件,我想下载它,取消归档并将其保存到nsdocument目录中,无需任何UI或用户交互。然后回读。
答案 0 :(得分:1)
在.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;
}
将项目下载到unArchive zip文件here,并在文档目录中保存文件后放置unArchive代码
答案 1 :(得分:0)
首先将文件下载到您的设备。
NSString *URLstring = @"http://your.download.URL";
NSURL *url = [NSURL URLWithString:URLstring];
NSData *urlData = [NSData dataWithContentsOfURL:url];
然后将其写入设备。如果您想要保存设备上的路径以及要保存的文件名,请记住添加文件扩展名(.zip)。
[urlData writeToFile:thePath atomically:YES];
然后你可以使用ziparchive或minizip之类的东西来解压缩它。有几种开源解决方案。这两个过去对我有用。很容易使用。
之后,使用解压缩的数据做任何你想做的事都很简单。并做一些大扫除并从手机中删除zip文件。