我需要获取远程文件的文件修改日期。
显然,此示例中的 attributes
会返回 NULL :
- (BOOL) fileHasBeenModifiedSinceLastLaunch
{
NSError * err = nil;
NSDictionary * attributes = [FILEMANAGER attributesOfItemAtPath:[NSURL URLWithString:@"http://www.wrightscs.com/some_file.txt"] error:&err];
NSString * modified = [NSString stringWithFormat:@"%@",[attributes objectForKey:@"NSFileModificationDate"]];
NSString * savedmod = [[NSUserDefaults standardUserDefaults] objectForKey:@"kFeedLastModified"];
NSLog(@"Error: %@",[err localizedDescription]);
NSLog(@"Saved Modified Date: %@", savedmod);
NSLog(@"Last Modified Date: %@", modified);
[[NSUserDefaults standardUserDefaults] setObject:modified forKey:@"kFeedLastModified"];
[[NSUserDefaults standardUserDefaults] synchronize];
if ( [savedmod isEqualToString:modified] )
{
NSLog(@"File has not been modified.");
return NO;
} else
{
NSLog(@"File has been modified.");
return YES;
}
}
2011-08-01 01:25:51.088 WrightsCS[2858:903] Error: The file “some_file.txt” couldn’t be opened because there is no such file.
2011-08-01 01:25:51.092 WrightsCS[2858:903] Saved Modified Date: (null)
2011-08-01 01:25:51.093 WrightsCS[2858:903] Last Modified Date: (null)
2011-08-01 01:25:51.095 WrightsCS[2858:903] Feed has not been modified.
答案 0 :(得分:8)
所以我能够弄清楚。
您可以使用NSURLConnection
和NSURLRequest
获取文件的http标头,然后您可以查找密钥上次修改:
- (void) sendRequestForLastModifiedHeaders
{
/* send a request for file modification date */
NSURLRequest *modReq = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.wrightscs.com/some_file.txt"]
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60.0f];
[[NSURLConnection alloc] initWithRequest:modReq delegate:self];
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
/* convert response into an NSHTTPURLResponse,
call the allHeaderFields property, then get the
Last-Modified key.
*/
NSString * last_modified = [NSString stringWithFormat:@"%@",
[[(NSHTTPURLResponse *)response allHeaderFields] objectForKey:@"Last-Modified"]
NSLog(@"Last-Modified: %@", last_modified );
}