iPhone检查和更新文件

时间:2011-03-21 16:36:59

标签: iphone ios asihttprequest

我想知道如何使用ASIHTTP检查和更新我的iPhone文件

到目前为止,我有:

__block BOOL complete = NO;
__block BOOL failed = NO;
/* doing the actual check. replace your existing code with this. */
NSURL *url = [NSURL URLWithString:@"http://notasdasd.com/file.txt"];
ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:url];
[request setDownloadCache:[ASIDownloadCache sharedCache]];
[request setCachePolicy:ASIAskServerIfModifiedCachePolicy|ASIFallbackToCacheIfLoadFailsCachePolicy];
[request setCompletionBlock:^{complete = YES;}];
[request setFailedBlock:^{failed = YES;}];
[request startSynchronous];
NSString *latestText = [request responseString];

我想检查缓存目录中的旧版本,并将最后修改的标题与缓存目录中文件的修改日期进行比较,然后替换。

2 个答案:

答案 0 :(得分:8)

尝试这样的事情:

if([[NSFileManager defaultManager] fileExistsAtPath:filePath]){
    NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:&error];
    NSDate *fileDate =[dictionary objectForKey:NSFileModificationDate];
    NSDate *today =[NSDate date];
    if (![[[today dateByAddingTimeInterval:-(60*60*24)] earlierDate:fileDate] isEqualToDate:fileDate]) {
        //file is less than 24 hours old, use this file.
    }
    else{
        //file is older than 24 hours, replace it
    }
}

答案 1 :(得分:0)

由于您正在使用下载缓存,因此它会为您执行此操作。请求完成后,响应应为最新版本,如果已更新,请求将仅再次下载实际内容。

  
    

我将如何在iphone上保存?

  

最简单的方法是在请求上设置downloadDestinationPath,它会将它保存在一个文件中。