attributesOfItemAtPath
dosyasını başka şeylerin yanı sıra değişiklik zamanını/tarihini almak için kullanabileceğimi biliyorum ... ancak değişiklik tarihini/saatini ayarlamanın bir yolu var mı bir dosya?özniteliklerOfItemAtPath (modifikasyon tarihi/saati gibi) nasıl ayarlanır
How to set the modification time of a file programmatically?'a baktım ama uygulanmıyor gibi görünüyor.
Sormamın nedeni dosya almak için http://allseeing-i.com/ASIHTTPRequest/ (aşağıdaki gibi) kullanıyorum ... ancak zaman damgası sunucudaki Son Değiştirme Zamanı ile aynı tutulmuyor. İndirilen dosyanın tarihini/saatini ayarlamak için Last-Modified başlığını kullanmak istiyorum; böylece indirilen zamanı sistemimde olduğu gibi sistemimde saklayabilirim.
Kodum şu:
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);
Yani, dize
lastModified
zaman/tarih damgası tutar.
librarySQLGZipPath
adresindeki dosyanın şimdi
lastModified
'da tarih/saat olarak ayarlanmasının sağlanmasının bir yolu var mı? Geçerli yöntemi kullanarak,
librarySQLGZipPath
dosyası, indirildiği süreyi saklı tutar.
Teşekkürler!
DÜZENLEME SONRA
Jann:
Bunun için kod nasıl güzel bu sayfada koymak istedim ve hala şimdi de duyuyorum cevaplanması için Steven Kramer kredi vermek istediğim için soruyu cevabı kullanarak aldığım kodu kullanıyorum:
NSDateFromRFC1123
burada bulunan bir yordamdır: http://blog.mro.name/2009/08/nsdateformatter-http-header/ (bazı ayarlamalar ile) Last-Modified başlık dizesini bir NSDate nesnesine dönüştürmek için:
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");
}
Çok teşekkürler Steven!
Ahh .. http://stackoverflow.com/questions/5791148/set-date-modified-of-files-in-cocoa gibi bir şey (Bu i cos aramada gelmedi iPhone'a koy) Bana doğru yönde işaret ettiğin için teşekkürler. Onay işareti ve +1 – Jann
Evet, bu sadece bir bilet gibi görünüyor ;-) –
Teşekkürler, bu bana yardımcı oldu. –