-1
我想要創建一個應用程序,該應用程序會自動從我自己的服務器下載文件夾並將其存儲在本地iPad/iPhone上。我怎樣才能做到這一點,該文件夾存儲在本地iDevice上?因此,我以後如何訪問它?非常感謝您的幫助將文件夾從服務器下載到本地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