DirectoryInfo - DeleteOlderThan
A DirectoryInfo extension method that deletes the older than.
public static string DirectoryName = "Main Directory"; public static void Main() { CreateFilesAndDirectories(); //C# Extension Method - DirectoryInfo - GetFileSystemEntries var entries = DirectoryName.ToDirectoryInfo().GetFileSystemEntries(); foreach (var entry in entries) { Console.WriteLine(entry); } var date = DateTime.Now.TimeOfDay; //C# Extension Method - DirectoryInfo - DeleteOlderThan DirectoryName.ToDirectoryInfo().DeleteOlderThan(date); } private static void CreateFilesAndDirectories() { DirectoryName.ToDirectoryInfo().Create(); DirectoryName.ToDirectoryInfo().CreateSubdirectory("Entity Framework"); DirectoryName.ToDirectoryInfo().CreateSubdirectory(".Net Framework"); DirectoryName.ToDirectoryInfo().CreateSubdirectory("Java"); DirectoryName.ToDirectoryInfo().CreateSubdirectory("SQL"); string file1 = DirectoryName + "\\EntityFramework.txt"; string file2 = DirectoryName + "\\oldTest.txt"; file1.ToFileInfo().WriteAllText("EF text"); file2.ToFileInfo().WriteAllText("text"); }
View Source
using System; using System.IO; using System.Linq; public static partial class Extensions { /// <summary> /// A DirectoryInfo extension method that deletes the older than. /// </summary> /// <param name="obj">The obj to act on.</param> /// <param name="timeSpan">The time span.</param> public static void DeleteOlderThan(this DirectoryInfo obj, TimeSpan timeSpan) { DateTime minDate = DateTime.Now.Subtract(timeSpan); obj.GetFiles().Where(x => x.LastWriteTime < minDate).ToList().ForEach(x => x.Delete()); obj.GetDirectories().Where(x => x.LastWriteTime < minDate).ToList().ForEach(x => x.Delete()); } /// <summary> /// A DirectoryInfo extension method that deletes the older than. /// </summary> /// <param name="obj">The obj to act on.</param> /// <param name="searchOption">The search option.</param> /// <param name="timeSpan">The time span.</param> public static void DeleteOlderThan(this DirectoryInfo obj, SearchOption searchOption, TimeSpan timeSpan) { DateTime minDate = DateTime.Now.Subtract(timeSpan); obj.GetFiles("*.*", searchOption).Where(x => x.LastWriteTime < minDate).ToList().ForEach(x => x.Delete()); obj.GetDirectories("*.*", searchOption).Where(x => x.LastWriteTime < minDate).ToList().ForEach(x => x.Delete()); } }