Wiem, że mogę użyć attributesOfItemAtPath
, aby uzyskać czas modyfikacji pliku/datę między innymi ... ale czy istnieje sposób, aby ustawić datę/czas modyfikacji plik?Jak ustawić attributesOfItemAtPath (takie jak data/czas modyfikacji) na iPhonie
Spojrzałem na How to set the modification time of a file programmatically?, ale wydaje się, że to nie dotyczy.
Powodem, dla którego pytam, jest użycie http://allseeing-i.com/ASIHTTPRequest/ (jak poniżej) do pobrania pliku ... jednak znacznik czasu nie jest zachowywany tak jak czas ostatniej modyfikacji na serwerze. Chcę użyć nagłówka Last-Modified, aby ustawić datę/godzinę pobranego pliku, dzięki czemu mogę zachować pobrane w moim systemie czasy takie jak na serwerze.
Mój kod następująco:
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);
więc ciąg lastModified
posiada czas/datownik. Czy istnieje sposób, aby plik librarySQLGZipPath
został ustawiony na datę/czas w lastModified
? Przy użyciu bieżącej metody plik librarySQLGZipPath
przechowuje czas, w którym został pobrany, co jest dla mnie nieważne.
Dzięki!
Jann
później edytować:
Bo chciałem ładnie umieścić na tej stronie, jak zrobić kod do tego i nadal chciał dać Steven Kramer punktów za odpowiedzi Jestem teraz będzie edytuj pytanie z odpowiedzią otrzymałem kod:
podczas gdy NSDateFromRFC1123
jest rutynową procedurą dostępną tutaj: http://blog.mro.name/2009/08/nsdateformatter-http-header/ (z pewnymi korektami), aby zmienić ostatnio zmodyfikowany ciąg nagłówka na obiekt 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");
}
Wielkie dzięki Steven!
Ahh .. coś http://stackoverflow.com/questions/5791148/set-date-modified-of-files-in-cocoa (to nie pojawią się w poszukiwaniu cos umieścić w iPhonie) Dzięki za wskazanie mnie we właściwym kierunku. Checkmark i +1 – Jann
Tak, to wydaje się być tylko bilet ;-) –
Dzięki, pomogło mi to. –