DirectoryInfo - DeleteDirectoriesWhere
A DirectoryInfo extension method that deletes the directories where.
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); } //C# Extension Method - DirectoryInfo - DeleteDirectoriesWhere DirectoryName.ToDirectoryInfo().DeleteDirectoriesWhere(x => x.Name.Contains("Framework")); Console.WriteLine("\n\nData in current directory after calling DeleteDirectoriesWhere method.\n\n"); //C# Extension Method - DirectoryInfo - GetFileSystemEntries entries = DirectoryName.ToDirectoryInfo().GetFileSystemEntries(); foreach (var entry in entries) { Console.WriteLine(entry); } } 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"); File.Create(DirectoryName + "\\EntityFramework.md"); File.Create(DirectoryName + "\\oldTest.txt"); }
View Source
using System; using System.IO; using System.Linq; public static partial class Extensions { /// <summary> /// A DirectoryInfo extension method that deletes the directories where. /// </summary> /// <param name="obj">The obj to act on.</param> /// <param name="predicate">The predicate.</param> public static void DeleteDirectoriesWhere(this DirectoryInfo obj, Func<DirectoryInfo, bool> predicate) { obj.GetDirectories().Where(predicate).ForEach(x => x.Delete()); } /// <summary> /// A DirectoryInfo extension method that deletes the directories where. /// </summary> /// <param name="obj">The obj to act on.</param> /// <param name="searchOption">The search option.</param> /// <param name="predicate">The predicate.</param> public static void DeleteDirectoriesWhere(this DirectoryInfo obj, SearchOption searchOption, Func<DirectoryInfo, bool> predicate) { obj.GetDirectories("*.*", searchOption).Where(predicate).ForEach(x => x.Delete()); } }