private static List <FileSystemInfo> GetFileSystemItems(DirectoryInfo d, Patterns patterns) { List <FileSystemInfo> listing = new List <FileSystemInfo>(); var fileRegexStrings = patterns.File.Split(','); var directoryRegexStrings = patterns.Directory.Split(','); foreach (string regex in directoryRegexStrings) { listing.AddRange(d.GetDirectories(regex, SearchOption.AllDirectories)); } foreach (string regex in fileRegexStrings) { listing.AddRange(d.GetFiles(regex, SearchOption.AllDirectories)); } return(listing); }
public static List <string> GetMatchList(DirectoryInfo d, Patterns patterns) { var parentDirectory = d.FullName + "\\"; List <FileSystemInfo> listing = new List <FileSystemInfo>(); List <string> mungedFileSystemItems = new List <string>(); listing = GetFileSystemItems(d, patterns); foreach (FileSystemInfo info in listing) { var shortenedName = info.FullName.Replace(parentDirectory, ""); mungedFileSystemItems.Add(shortenedName); } mungedFileSystemItems.Sort(); return(mungedFileSystemItems); }
public static void DeleteSubFolders(DirectoryInfo d, Patterns patterns) { List <FileSystemInfo> listing = new List <FileSystemInfo>(); listing = GetFileSystemItems(d, patterns); // Check Directories first List <DirectoryInfo> directories = GetSpecificInfo <DirectoryInfo>(listing).ToList(); foreach (DirectoryInfo directoryInfo in directories) { if (directoryInfo.Exists) { SetAttributesToNormal(directoryInfo); DirectoryInfo[] d_svn_subs = directoryInfo.GetDirectories("*", SearchOption.AllDirectories); foreach (DirectoryInfo d_svn_sub in d_svn_subs) { SetAttributesToNormal(d_svn_sub); // delete all the files and the folder found DeleteFolder(d_svn_sub); } DeleteFolder(directoryInfo); } } //Check Files Next List <FileInfo> files = GetSpecificInfo <FileInfo>(listing).ToList(); foreach (FileInfo fileInfo in files) { if (fileInfo.Exists) { SetAttributesToNormal(fileInfo); fileInfo.Delete(); } } }