एक निश्चित अवधि में फ़ाइलों को हटाने के लिए सबसे विहित दृष्टिकोण फ़ाइल के LastWriteTime (पिछली बार फ़ाइल को संशोधित किया गया था) का उपयोग करके है:
Directory.GetFiles(dirName)
.Select(f => new FileInfo(f))
.Where(f => f.LastWriteTime < DateTime.Now.AddMonths(-3))
.ToList()
.ForEach(f => f.Delete());
(उड़ी के उत्तर पर आधारित है लेकिन साथ है LastWriteTime
।)
जब भी आप लोगों को एक निश्चित समय सीमा (जो कि एक बहुत ही सामान्य गतिविधि है) से पुरानी फ़ाइलों को हटाने के बारे में बात करते हुए सुनते हैं, तो यह फ़ाइल के लास्ट मॉमिडिफाइमिट के आधार पर करना लगभग हमेशा वही होता है जो वे खोज रहे हैं।
वैकल्पिक रूप से, बहुत ही असामान्य परिस्थितियों के लिए आप नीचे का उपयोग कर सकते हैं, लेकिन सावधानी के साथ इनका उपयोग करें जैसा कि वे चेतावनी देते हैं।
CreationTime
.Where(f => f.CreationTime < DateTime.Now.AddMonths(-3))
वर्तमान स्थान में जिस समय फ़ाइल बनाई गई थी। हालाँकि, सावधान रहें यदि फ़ाइल की प्रतिलिपि बनाई गई थी, तो यह वह समय होगा जिसे कॉपी किया गया था और CreationTime
यह फ़ाइल की तुलना में नया होगा LastWriteTime
।
LastAccessTime
.Where(f => f.LastAccessTime < DateTime.Now.AddMonths(-3))
यदि आप पिछली बार के आधार पर उन फ़ाइलों को हटाना चाहते हैं जो वे पढ़ रहे थे तो आप इसका उपयोग कर सकते थे लेकिन, इसकी कोई गारंटी नहीं है कि इसे अपडेट किया जाएगा क्योंकि इसे NTFS में अक्षम किया जा सकता है। fsutil behavior query DisableLastAccess
यह देखने के लिए जांचें कि क्या यह चालू है। NTFS के तहत फ़ाइल के LastAccessTime को एक्सेस करने के बाद अपडेट होने में एक घंटे तक का समय लग सकता है।