将文件夹从服务器下载到本地iPad/iPhone
问题描述:
我想要创建一个应用程序,该应用程序会自动从我自己的服务器下载文件夹并将其存储在本地iPad/iPhone上。我怎样才能做到这一点,该文件夹存储在本地iDevice上?因此,我以后如何访问它?非常感谢您的帮助将文件夹从服务器下载到本地iPad/iPhone
答
这样做实际上是把一个压缩文件中的所有例如图片,下载并使用此代码解压它在实际设备上的最佳方式:
dispatch_queue_t queue = dispatch_get_global_queue(
DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
NSURL *url = [NSURL URLWithString:@"someDirectory/newPics.zip"];
NSError *error = nil;
// 2
NSData *data = [NSData dataWithContentsOfURL:url options:0 error:&error];
if(!error)
{
// 3
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
NSString *zipPath = [path stringByAppendingPathComponent:@"newPics.zip"];
[data writeToFile:zipPath options:0 error:&error];
if(!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 *imageFilePath = [path stringByAppendingPathComponent:@"newPics/pic1.png"];
//[self removeImage:zipPath];
[[NSFileManager defaultManager] removeItemAtPath:zipPath error: &error];
dispatch_async(dispatch_get_main_queue(), ^{
NSURL *fileURL = [NSURL fileURLWithPath:imageFilePath];
[_webV loadRequest:[NSURLRequest requestWithURL:fileURL]];
});
}
}
else
{
NSLog(@"Error saving file %@",error);
}
}
else
{
NSLog(@"Error downloading zip file: %@", error);
}
});
这是最好的办法,快速和可靠。
而不是投下来,它会更有帮助,如果我知道如何做到这一点,我不会问 – 2014-10-06 06:43:27
这太宽泛了,你需要拿出一个计划,实施它,然后提出问题你有特定的问题。网上有很多教程来帮助一般数据存储。 – Wain 2014-10-06 06:55:25
iOS设备没有可用于所有应用程序的通用文件系统。您的应用程序可以在其自己的沙箱中创建文件 - https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html – Paulw11 2014-10-06 06:57:18