2011-05-09 10 views
6

पर attributesOfItemAtPath (जैसे संशोधन दिनांक/समय) को कैसे सेट करें, मुझे पता है कि मैं attributesOfItemAtPath का उपयोग अन्य चीजों के साथ फ़ाइल का संशोधन समय/दिनांक प्राप्त करने के लिए कर सकता हूं ... लेकिन क्या संशोधित दिनांक/समय निर्धारित करने का कोई तरीका है एक पंक्ति?आईफोन

मैंने How to set the modification time of a file programmatically? पर देखा है लेकिन ऐसा प्रतीत नहीं होता है।

कारण मैं पूछता हूं कि मैं फ़ाइल लाने के लिए http://allseeing-i.com/ASIHTTPRequest/ (नीचे के रूप में) का उपयोग करता हूं ... हालांकि टाइमस्टैम्प को सर्वर पर अंतिम-संशोधित समय के समान नहीं रखा जाता है। मैं डाउनलोड की गई फ़ाइल की दिनांक/समय निर्धारित करने के लिए अंतिम-संशोधित शीर्षलेख का उपयोग करना चाहता हूं, इसलिए मैं अपने सिस्टम पर डाउनलोड किए गए समय को सर्वर पर जैसा ही रख सकता हूं।

मेरे कोड इस प्रकार है:

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/ (कुछ समायोजन के साथ) अंतिम संशोधित शीर्षलेख स्ट्रिंग को 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"); 
} 

धन्यवाद इतना स्टीवन!

उत्तर

9

उपयोग -[NSFileManager setAttributes:(NSDictionary *)attributes ofItemAtPath:(NSString *)path error:(NSError **)error

+0

आह .. http://stackoverflow.com/questions/5791148/set-date-modified-of-files-in-cocoa की तरह कुछ (यह नहीं मैं क्योंकि खोज में आया था आईफोन में डाल दिया) सही दिशा में मुझे इंगित करने के लिए धन्यवाद। चेकमार्क और +1 – Jann

+0

हाँ, यह सिर्फ टिकट लगता है ;-) –

+0

धन्यवाद, इससे मुझे मदद मिली। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^