So che posso usare attributesOfItemAtPath
per ottenere l'ora/data di modifica del file tra le altre cose ... ma c'è un modo per impostare la data/ora di modifica di un file?Come impostare attributesOfItemAtPath (come data/ora di modifica) su iPhone
Ho visto How to set the modification time of a file programmatically? ma non sembra applicarsi.
Il motivo per cui lo chiedo è che utilizzo http://allseeing-i.com/ASIHTTPRequest/ (come indicato di seguito) per recuperare un file ... tuttavia il timestamp non viene mantenuto uguale all'ora Last-Modified sul server. Voglio usare l'intestazione Last-Modified per impostare la data/ora del file scaricato in modo da poter mantenere l'ora scaricata sul mio sistema così come è sul server.
Il mio codice segue:
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);
Così, la stringa lastModified
detiene il data/ora. C'è un modo per garantire che il file in librarySQLGZipPath
sarà ora impostato su data/ora in lastModified
? Utilizzando il metodo corrente, il file librarySQLGZipPath
contiene il tempo in cui è stato scaricato, che per me non è valido.
Grazie!
Jann
modificare in seguito:
perché volevo ben messo in questa pagina come fare il codice per questo e ha voluto dare Steven Kramer credito per rispondere sono ora andando modifica la domanda con la risposta che ho ottenuto utilizzando il codice:
mentre-è una routine trovata qui: http://blog.mro.name/2009/08/nsdateformatter-http-header/ (con alcune regolazioni) per modificare la stringa di intestazione Last-Modified in un oggetto 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");
}
Grazie mille Steven!
Ahh .. qualcosa di simile http://stackoverflow.com/questions/5791148/set-date-modified-of-files-in-cocoa (Questo non è venuto in cerca cos i messo in iPhone) Grazie per avermi indicato nella giusta direzione. Segno di spunta e +1 – Jann
Sì, quello sembra essere solo il biglietto ;-) –
Grazie, mi ha aiutato. –