2013-07-09 11 views
5

में फ़ाइल बनाई गई तिथि प्राप्त करें नोड में मैं मानक फ़ाइल स्टेट ऑब्जेक्ट का उपयोग कर फ़ाइल की संशोधित तिथि प्राप्त कर सकता हूं। क्या कोई तरीका है कि मैं इसकी बनाई गई तारीख भी पा सकता हूं? मुझे http://nodejs.org/api/fs.html#fs_class_fs_stats दस्तावेज में कुछ भी नहीं मिला है।नोड

+0

'util.inspect (आँकड़े)' आप जानकारी देना चाहिए ... क्या आप आउटपुट के रूप में मिलता है इस का? – PSL

+0

3 दिनांक मान - एटिम, सीटाइम और एमटाइम, जिनमें से कोई भी निर्मित समय नहीं है (सीटाइम बदल गया समय है) – wheresrhys

उत्तर

6

आप फ़ाइल निर्माण के समय प्राप्त कर सकते हैं या नहीं, ओएस और फाइल सिस्टम पर निर्भर करता है। पारंपरिक POSIX केवल ctime को परिभाषित करता है, जो कि (बल्कि भ्रमित) है, इनोड संशोधन दिनांक, सृजन तिथि नहीं, जैसा कि अन्य लोगों ने उल्लेख किया है। हालांकि, कुछ ऑपरेटिंग सिस्टम पर, आप st_birthtimespec, या st_birthtime प्राप्त कर सकते हैं जो एक वास्तविक "बनाना" समय है। यह देखने के लिए कि क्या कुछ भी उपलब्ध है, आपको अपने होस्ट ऑपरेटिंग सिस्टम पर sys/stat.h की जांच करनी होगी।

दुर्भाग्यवश, चाहे आप नोड.जेएस से पूरी स्टेट संरचना तक पहुंच सकें या नहीं, मछली का एक अलग केतली है। लेकिन कम से कम आप यह पता लगा सकते हैं कि आपका ओएस इसका भी समर्थन करता है और वहां से जाता है।

1

आप लिनक्स उपयोग कर रहे हैं तो इस जानकारी को (हालांकि यह Ext4 फाइल सिस्टम में संग्रहित किया जाता है) सुलभ नहीं है। इस प्रकार fs.stat केवल atime, ctime, mtime मान देता है।

+1

सीटाइम, मैंने जो कुछ भी पढ़ा है, उसके अनुसार, समय बदल गया है, जो समान है, हालांकि काफी समान नहीं है संशोधित समय – wheresrhys

+1

दुर्भाग्यवश, आप सही हैं (मैंने सोचा था कि 'ctime'' निर्माण समय 'के लिए था)। मैं कुछ सामानों की कोशिश करूंगा, हालांकि, अगर मुझे जवाब नहीं मिलेगा तो मैं इसे हटा दूंगा। – Zbigniew

+1

इस पर एक नज़र डालें: [फ़ाइल निर्माण समय प्राप्त करें] (http://unix.stackexchange.com/questions/24441/get-file-created-creation-time) – Zbigniew

9

कोई, यह सब समय के बाद इस पर ठोकर नोड v0.12.0 उपयोग इस के रूप में हैं:

fs.stat(path, callback) 

कहाँ कॉलबैक दो आर्ग है & आँकड़े गलती। आंकड़े वस्तु में संपत्ति

birthtime 

जो निर्माण तिथि है।

नोड API दस्तावेज़ link

0

मैं फेडोरा उपयोग कर रहा हूँ और वहाँ fs.stat परिणाम में कोई 'birthtime' फ़ील्ड है से लिंक करें। लेकिन शायद आप ls --full-time का आह्वान करने के लिए नोड के child_process का उपयोग करने का प्रयास कर सकते हैं। कम से कम मेरी मशीन पर यह मुझे सही परिणाम दे रहा है।

fs.stat परिणाम:

{ dev: 64771, 
    mode: 33279, 
    nlink: 1, 
    uid: 1000, 
    gid: 1000, 
    rdev: 0, 
    blksize: 4096, 
    ino: 2098445, 
    size: 48523700, 
    blocks: 94776, 
    atime: Sat Jul 04 2015 19:01:29 GMT+1000 (AEST), 
    mtime: Thu Aug 22 2013 16:45:10 GMT+1000 (AEST), 
    ctime: Sat Jul 04 2015 19:01:29 GMT+1000 (AEST) } 

ls --full समय

-rwxrwxrwx. 1 pahuang pahuang 22M 2013-06-23 17:51:08.000000000 +1000 test_media/processed/20130621.mkv