下载两个不同文件夹ios中的文件

时间:2012-09-25 10:43:32

标签: objective-c ios cocoa-touch download asihttprequest

我有一个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重命名为中文,但这不方便!

1 个答案:

答案 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

中是否存在目录