Я знаю, что могу использовать attributesOfItemAtPath
для получения времени / даты изменения файла среди прочего ... но есть ли способ УСТАНОВИТЬ дату / время изменения файла?
Я смотрелна Как программно установить время изменения файла? но, похоже, это не применимо.
Причина, по которой я спрашиваю, заключается в том, что я использую http://allseeing -i.com / ASIHTTPRequest / (как показано ниже) для получения файла ... однако метка времени не сохраняется так же, какВремя последнего изменения на сервере.Я хочу использовать заголовок Last-Modified, чтобы установить дату / время загруженного файла, чтобы я мог сохранить загруженное время в моей системе таким же, как и на сервере.
Мой код следующий:
ASIHTTPRequest *requestFeed = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:kGZipSQLURL]];
[requestFeed setNumberOfTimesToRetryOnTimeout:2];
[requestFeed setDownloadDestinationPath:librarySQLGZipPath];
[requestFeed setCachePolicy:ASIAskServerIfModifiedCachePolicy|ASIFallbackToCacheIfLoadFailsCachePolicy];
[requestFeed setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
[requestFeed setSecondsToCache:60*60*24*30];
[requestFeed setDownloadCache:[ASIDownloadCache sharedCache]];
[requestFeed startSynchronous];
NSString *lastModified = [[requestFeed responseHeaders] objectForKey:@"Last-Modified"];
NSLog(@"Last Modified: %@",lastModified);
Итак, строка lastModified
содержит метку времени / даты.Есть ли способ гарантировать, что для файла в librarySQLGZipPath
теперь будет установлена дата / время в lastModified
?Используя текущий метод, файл librarySQLGZipPath
содержит время, когда он был загружен, что для меня является недействительным.
Спасибо!
Jann
РЕДАКТИРОВАТЬ ПОЗЖЕ:
Поскольку я хотел красиво написать на этой странице, как сделать код для этого, и все же хотел поблагодарить Стивена Крамера за ответ, я сейчас собираюсь редактировать вопрос с помощьюОтвет, который я получил, используя код:
, тогда как NSDateFromRFC1123
- это процедура, найденная здесь: http://blog.mro.name/2009/08/nsdateformatter-http-header/ (с некоторыми изменениями) для изменения строки заголовка Last-Modified в объект NSDate:
NSDictionary *attrs = [NSDictionary dictionaryWithObjectsAndKeys:[self NSDateFromRFC1123:lastModified] ,NSFileModificationDate, nil];
NSError *errorFile;
if ([NSFileManager defaultManager] setAttributes:attrs ofItemAtPath:librarySQLGZipPath error: &errorFile])
{
NSLog(@"Set timestamp of file");
}
else {
NSLog(@"COULD NOT set timestamp of file");
}
Большое спасибо, Стивен!