我有一个iphone应用程序,使用JSON文件下载pdf文件JSON响应看起来像
{
"resource_id":"1132",
"name_en":"mpla mpla mpla",
"name_cn":null,
"product_id":"1064",
"product":"mpla",
"category":"mpla Literature",
"fileURLString_en":"http://mpla.mpla.com/media/427/mpla.pdf",
"fileURLString_en_date":"Mon, 03 Sep 2012 08:53:40 GMT",
"fileURLString_cn":"http://mpla.mpla.com/media/427/mpla.pdf",
"fileURLString_cn_date":"Mon, 03 Sep 2012 08:53:40 GMT",
"thumbnailURLString_en":"http://mpla.mpla.com/media/1472/mpla.png",
"emailURLString_en":null,
"emailURLString_en_date":null,
"descriptionString_en":null,
"emailThumbnailURLString_en":null,
"emailThumbnailURLString_en_date":null,
"externalUrl":null
},
我想下载Library / Caches / en文件夹中的en文件和Library / Cashes / ch文件夹中的中文文件。
我正在使用ASIHTTPRequest作为通信部分!您有什么建议(在代码中)下载和保存特定文件夹的文件?
到目前为止,这是我的代码:
-(void)createDirectory:(NSString *)directoryName atFilePath:(NSString *)filePath
{
NSString *filePathAndDirectory = [filePath stringByAppendingPathComponent:directoryName];
NSLog(@"%@",filePathAndDirectory);
NSError *error;
if (![[NSFileManager defaultManager] createDirectoryAtPath:filePathAndDirectory withIntermediateDirectories:NO
attributes:nil
error:&error])
{
NSLog(@"Create directory error: %@", error);
}
}
NSString* filePath=[NSString stringWithFormat:@""];
NSString *clanguage = [[NSLocale preferredLanguages] objectAtIndex:0];
if([clanguage isEqualToString:@"en"])
{
NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
filePath = [NSString stringWithFormat:@"%@/en/%@",cachesPath,urlPath.lastObject];
}
else if([clanguage isEqualToString:@"zh-Hans"])
{
NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
filePath = [NSString stringWithFormat:@"%@/cn/%@",cachesPath,urlPath.lastObject];
}
我尝试过创建两个子文件夹,但根据链接无法保存文件。 我也尝试将名称中的文件重命名为english,将ch_name重命名为中文,但这不方便!
答案 0 :(得分:1)
这样做:
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
if(![fileManager fileExistsAtPath:[cachePath stringByAppendingPathComponent:@"en/mpla.pdf"]]) {
[downloadedPdfData writeToFile:cachePath options:NSDataWritingAtomic error:&error];
}
if(![fileManager fileExistsAtPath:[cachePath stringByAppendingPathComponent:@"ch/mpla.pdf"]]) {
[downloadedPdfData writeToFile:cachePath options:NSDataWritingAtomic error:&error];
}
检查here
中是否存在目录