मैं एक फ़ाइल पर निर्माण और संशोधन तिथियां सेट करने का प्रयास कर रहा हूं।NSFileCreationDate को सेट करने का कोई प्रभाव नहीं है
NSFileManager *fileManager = [NSFileManager defaultManager];
NSDate *now = [NSDate date];
NSDictionary *timestampAttr = [NSDictionary dictionaryWithObjectsAndKeys:
now, NSFileCreationDate, now, NSFileModificationDate, nil];
BOOL ret = [fileManager setAttributes:timestampAttr ofItemAtPath:path error:&err];
संशोधित दिनांक फ़ाइल के लिए सफलतापूर्वक संशोधित किया गया है। निर्माण की तारीख अपरिवर्तित है। क्यूं कर?
ret
सत्य है और err
शून्य है। -attributesOfItemAtPath
एक शब्दकोश देता है जिसमें timestampAttr
और सही (संशोधित) संशोधन दिनांक और गलत (अनमोडिफाइड) निर्माण तिथि दोनों कुंजी शामिल हैं।
संपादित करें: ओएस एक्स संस्करण 10.6 का उपयोग करना। एक्सकोड परियोजना का बेस एसडीके 10.5 है। फ़ाइल मेरे कंप्यूटर फ़ोल्डर में एक फ़ोल्डर में, मेरे कंप्यूटर की एकमात्र हार्ड ड्राइव (कोई RAID) पर है। फ़ाइल एक ऐप बंडल के अंदर है यदि इससे कोई फर्क पड़ता है।
संपादित करें: यह सरल उदाहरण काम करता है:
#import <Cocoa/Cocoa.h>
int main(void)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSFileManager *m = [NSFileManager defaultManager];
NSString *path = ...;
[m setAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[NSDate date],NSFileCreationDate,nil] ofItemAtPath:path error:nil];
[pool drain];
return 0;
}
मैं एप्लिकेशन मैं मूल रूप से के बारे में पूछा में उपरोक्त कोड चिपकाया, (मेरे डेस्कटॉप पर) सरल उदाहरण के रूप में एक ही फाइल के सेटिंग एट्रीब्यूट्स। जब कोड ऐप के अंदर होता है, तो यह काम नहीं करता है।
संपादित करें: ठीक है, यह पागल है। उपरोक्त सरल उदाहरण काम कर रहा था (मेरे सहकर्मी और मैंने दोनों ने इसे अपने कंप्यूटर पर काम किया) लेकिन अब यह काम नहीं कर रहा है।
धन्यवाद। मेरा संपादन देखें। – jlstrecker