Я знаю, что могу использовать attributesOfItemAtPath
, чтобы получить время и дату изменения файла между прочим ... но есть ли способ установить дату и время изменения файл?Как установить атрибутыOfItemAtPath (например, дата/время изменения) на iPhone
Я просмотрел How to set the modification time of a file programmatically?, но он, похоже, не применяется.
Причина, по которой я прошу, заключается в использовании 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
содержит время его загрузки, которое для меня неверно.
Спасибо!
Янн
EDIT СПУСТЯ:
Потому что я хотел красиво положить на этой странице, как сделать код для этого и по-прежнему хотел дать Стивен Крамер кредит для ответа я сейчас буду отредактируйте вопрос с ответом, который я получил с помощью кода:
тогда как 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");
}
Большое спасибо Стивен!
Ааа .. что-то вроде http://stackoverflow.com/questions/5791148/set-date-modified-of-files-in-cocoa (это не удалось в поиске, потому что я положите в iPhone) Спасибо, что указали мне в правильном направлении. Checkmark и +1 – Jann
Да, это похоже на билет ;-) –
Спасибо, мне это помогло. –