2012-02-08 13 views
5

पुरानी फ़ाइलों को मैं कोड की एक बुनियादी बिट जो मैं एक दिया निर्देशिका में पाठ फ़ाइलों को हटाने के उपयोग कर रहा हूँ है को नष्ट करने की कोशिश कर:x दिनों vb.net

For Each file As IO.FileInfo In New IO.DirectoryInfo(filePath).GetFiles("*.txt") 
    If (Now - file.CreationTime).Days > intdays Then file.Delete() 
    Next 

filePath निर्देशिका जहां फाइलों रहते है।

intdays एक चर है जो निर्धारित करता है कि फ़ाइलों को कितनी दिनों तक बनाए रखा जाना चाहिए।

कोड का परीक्षण करने के लिए मैंने 0 को intdays सेट किया है, यह मानते हुए कि यह डायरेक्टॉय में किसी भी फाइल को हटा देगा। हालांकि यह नहीं करता है, लेकिन कोई त्रुटि नहीं बनाता है।

समय "अब" # 2/8/2012 13:59:00 अपराह्न # जो 0 से बड़ा है। लेकिन मैं उलझन में हूं कि यह फ़ाइल को क्यों हटा नहीं देता है?

+0

यह नहीं होना चाहिए कि जब आप 1 दिन से कम अंतर के साथ तिथियों को घटाते हैं, तो टाइमस्पेन शून्य की दिन की संपत्ति? – Oybek

उत्तर

3

तिथियों के बीच अंतर एक दिन से कम है।

आप Days संपत्ति को कॉल कर रहे हैं, जो एक पूर्णांक प्रकार है - यह एक दिन से भी कम अंतराल के लिए 0 होगा।

+0

इसे साफ़ करने के लिए धन्यवाद, मैंने इसे परीक्षण उद्देश्यों के लिए> = में बदल दिया और यह फ़ाइलों को हटा दिया। मैं इसे देखने के लिए एक दिन इंतजार करूँगा> यह देखने के लिए कि क्या यह काम करता है। –

+0

@Downvoter - टिप्पणी करने की देखभाल? – Oded

+1

@ASmith: या आप केवल कुलदेय संपत्ति का उपयोग कर सकते हैं, जो एक दशमलव है, इसलिए 12 घंटे का टाइमपैन 0.5 कुल दिन होगा। –

0

मैं परीक्षण किया है यह

 Dim d = New Date(2012, 11, 21, 16, 0, 0) 
     Dim dGreater = New Date(2012, 11, 21, 17, 0, 0) 
     Dim result = dGreater - d 
     Console.WriteLine(result.Days) 

तो जब आप तारीखों कि एक दिन परिणाम की Days संपत्ति 0 है, अर्थात कम पूर्णांक मान को छोटा कर दिया की तुलना में कम अंतर है घटाकर कर रहे हैं।

+0

@ ओडेड क्षमा नहीं किया गया। पहले से ही भाषा बदल दी। – Oybek

0

आप जो भी हासिल करने की कोशिश कर रहे हैं उसके आधार पर के बजाय LastWriteTime का उपयोग करना चाह सकते हैं।