मैं एक रूबी स्क्रिप्ट का उपयोग कर मैक ओएस पर एक फ़ाइल के लिए फाइल सिस्टम निर्माण समय सेट करने की कोशिश कर रहा हूं।मैक ओएस पर रूबी के साथ फ़ाइल निर्माण समय कैसे सेट कर सकता हूं?
मैक ओएस एक्स पर 'ctime' फ़ाइल निर्माण समय के बजाय इनोड संशोधन के अंतिम समय का प्रतिनिधित्व करता है, इस प्रकार ctime सेट करने के लिए ruby's file.utime() का उपयोग करने में मदद नहीं मिलेगी।
Time.parse(`mdls -name kMDItemContentCreationDate -raw "#{filename}"`)
... लेकिन कैसे गहरे लाल रंग का उपयोग कर इसे स्थापित करने के लिए पर कोई विचार:
इस संकेत [http://inessential.com/2008/12/18/file_creation_date_in_ruby_on_macs] का उपयोग करते हुए मैं एक फ़ाइल के निर्माण के समय प्राप्त कर सकते हैं?
- अद्यतन -
ठीक है, मुझे लगता है कि मैं वास्तव में गहरे लाल रंग का में File.utime
के साथ ऐसा कर सकते हैं।
हालांकि ctime तकनीकी रूप से फ़ाइल निर्माण समय को ट्रैक करने के लिए, जब आप utime
का उपयोग ctime फाइल सिस्टम जादुई प्रतीत होता है (mtime, जो एक साथ सेट किया जाना चाहिए के साथ) अद्यतन करने के लिए मैक ओएस द्वारा नहीं किया जाता kMDItemContentCreationDate
के अनुसार निर्माण समय को भी अपडेट करें।
तो 1st अक्टू 2010 का ctime और 2010 2 एन डी अक्टू के mtime को फ़ाइल नाम स्थापित करने के लिए:
File.utime(Time.strptime('011010', '%d%m%y'), Time.strptime('021010', '%d%m%y'), filename)
आप अपने 'अपडेट' को समाधान के रूप में समाधान पोस्ट करना चाहते हैं, इसलिए इस प्रश्न को खुले रहने की आवश्यकता नहीं है (और 'अनुत्तरित') – robustus
आप समझते हैं कि यह पोर्टेबल नहीं है। लिनक्स एक निर्माण समय भंडारण का समर्थन नहीं करता है। इसके अलावा ctime निर्माण समय नहीं है, यह निर्देशिका के अनुसार "परिवर्तन" समय है, फ़ाइल के लिए नहीं। यह इसे समझा सकता है: http://stackoverflow.com/a/4009369/128421 –
'utime' का उपयोग कर फ़ाइल समय सेट करना' mdls -name kmDItemContentCreationDate -raw' का उपयोग करके लौटाए गए मान को नहीं बदलेगा। –