我正在創建一個應用程序,我必須從服務器下載一些圖像並將其存儲以在網絡不可用(並保存數據)時使用。 我面臨的問題是,我有一個基址(www.url.com/
),所有的圖像地址來自JSON連接,但它是這樣的:Upload/Ctop/GC60V/JPEG/GC60V_concept.jpg
。因爲我有一些不同的圖像,每幅圖像想出了一個不同的路徑,我需要將其存儲在的兩種方法之一:使用url動態創建文件夾
- 在
Documents/Upload/
或 - 只是文件名以完整路徑創建文件夾在Documents目錄中。
對於這兩種方式,我必須能夠(當然)恢復圖像。
我現在正在做的是: - 我檢查服務器是否有更新。如果它存在,我試圖抹掉的/Upload/
文件夾,然後重新創建:
// Erase previous images
NSFileManager *filemgr = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [NSString stringWithFormat:@"%@%@", [paths objectAtIndex:0], @"/Upload/"];
NSLog(@"%@", [[NSFileManager defaultManager]contentsOfDirectoryAtPath:documentsDirectory error:nil]);
if ([filemgr removeItemAtPath: documentsDirectory error: NULL] == YES) {
NSLog(@"Folder removed: %@", documentsDirectory);
}
然後,我收到了JSON數據,我嘗試「創建文件夾」並保存新文件:
// Download of categories images
if (![[NSString stringWithFormat:@"%@%@", URL_BASE, [[categories objectAtIndex:j] valueForKey:@"Path"]] isEqualToString:URL_BASE]) {
url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@", URL_BASE, [[categories objectAtIndex:j] valueForKey:@"Path"]]];
urlData = [NSData dataWithContentsOfURL:url];
}
if (urlData)
{
NSLog(@"Starting categories image download...");
NSLog(@"URL: %@", url);
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory, [[categories objectAtIndex:j] valueForKey:@"Path"]];
[urlData writeToFile:filePath atomically:YES];
NSLog(@"Download finished.");
} else {
NSLog(@"No categories image to download.");
}
據我瞭解,我錯過了正確創建文件夾的過程,但我無法弄清楚我該怎麼做。另外,我不知道該怎麼讀。
任何幫助將不勝感激!
謝謝。
之前創建目錄'writeToFile:'''[NSFileManager defaultManager] createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:&err或者];' – Akhilrajtr
我不相信這很簡單@Akhilrajtr(實際上我是這麼做的!)。它現在正在創建文件夾!但我仍然必須解決與文件名的問題,因爲我試圖用完整的路徑保存文件的名稱(類似於/Upload/Folder/etc/image.jpg),我相信我必須剪切文件夾名字,只是讓圖像的名稱。有沒有簡單的方法來做到這一點?感謝您的幫助。 – Tchelow
所以你只需要'Documents/Upload/imageName.jpg'作爲路徑? – Akhilrajtr