将文件夹从服务器下载到本地iPad/iPhone

问题描述:

我想要创建一个应用程序,该应用程序会自动从我自己的服务器下载文件夹并将其存储在本地iPad/iPhone上。我怎样才能做到这一点,该文件夹存储在本地iDevice上?因此,我以后如何访问它?非常感谢您的帮助将文件夹从服务器下载到本地iPad/iPhone

+0

而不是投下来,它会更有帮助,如果我知道如何做到这一点,我不会问 – 2014-10-06 06:43:27

+0

这太宽泛了,你需要拿出一个计划,实施它,然后提出问题你有特定的问题。网上有很多教程来帮助一般数据存储。 – Wain 2014-10-06 06:55:25

+0

iOS设备没有可用于所有应用程序的通用文件系统。您的应用程序可以在其自己的沙箱中创建文件 - https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html – Paulw11 2014-10-06 06:57:18

这样做实际上是把一个压缩文件中的所有例如图片,下载并使用此代码解压它在实际设备上的最佳方式:

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); 
    } 

}); 

这是最好的办法,快速和可靠。