2012-05-14 9 views
9

लौटने मैं एक लेबल के लिए एक निर्देशिका की तिथि संशोधित समय लिखने के लिए निम्नलिखित कोड का उपयोग कर रहाGetLastWriteTime 1600/12/31 19:00:00

string selectedPath = comboBox1.SelectedItem.ToString(); 
DateTime lastdate = Directory.GetLastWriteTime(selectedPath); 
datemodified.Text = lastdate.ToString(); 

यह तारीख रिटर्न 1600/12/31 7:00:00 अपराह्न जो मेरे पास कोई सुराग नहीं है, जहां से वह तारीख प्राप्त हो रही है। क्या कोई मुझे समझने में मदद कर सकता है कि वह उस तारीख को क्यों लौट रहा है और मैं इसे कैसे ठीक कर सकता हूं? मैं .NET 3.5

उत्तर

29

उपयोग कर रहा हूँ the documentation से:

हैं निर्देशिका पथ पैरामीटर में वर्णित मौजूद नहीं है, इस विधि देता है 12:00 आधी रात, 1 जनवरी, 1601 ई (सीई) समन्वित सार्वभौमिक समय (यूटीसी), स्थानीय समय में समायोजित।

तो शायद अपने समय क्षेत्र UTC-5 (जनवरी) है, और निर्देशिका मौजूद नहीं है ...

+4

बस मुझे बताओ जॉन आपको यह सब याद क्यों है? एमएसडीएन पर कॉल की परिभाषा को देखकर –

+8

@ निखिल अग्रवाल। एक व्यक्ति को सब कुछ याद रखने की ज़रूरत नहीं है, बस याद रखना होगा –

0

पहला विचार को ठीक से सेट है कि है की अपने समय है। दूसरा विचार उस फ़ोल्डर पर राइट क्लिक करना है और देखें कि यह गुणों में क्या कहता है। अंत में मैं नया टेस्ट फ़ोल्डर बनाउंगा और उस पर GetLastWriteTime परीक्षणों के उस बिट को चलाऊंगा ताकि आप जान सकें कि आप क्या प्राप्त कर रहे हैं।

+0

सोमवार, 07 मई, 2012, 4:06:00 अपराह्न फ़ोल्डरों में से एक पर तारीख है। यह मेरे लिए सिर्फ अजीब है। कोड समझ में आता है, लेकिन इसकी वापसी क्या – heinst

+0

नहीं है, तो मैं कल्पना करूंगा कि स्ट्रिंग सही नहीं है –

0

GetLastWriteTime हमेशा विश्वसनीय दिनांक समय वापस नहीं, इस

string selectedPath = comboBox1.SelectedItem.ToString(); 
DateTime now = DateTime.Now; 
TimeSpan localOffset = now - now.ToUniversalTime(); 
DateTime lastdate = File.GetLastWriteTimeUtc(selectedPath) + localOffset; 
datemodified.Text = lastdate.ToString(); 
0

पुराने सवाल का उपयोग, लेकिन आज मैं इस मुद्दे का सामना करना पड़ा। जब आपका पथ अमान्य है या फ़ाइल मौजूद नहीं है, तो उस विशेष तिथि को भी वापस कर दिया जाता है, क्योंकि इनमें से किसी भी मामले में अपवाद में कोई अंतर्निहित नहीं है।