public static void DeleteFiles(this ICakeContext cakeContext, DeleteHelpersConfig config) { FilePathCollection files = cakeContext.GetFiles(config.FullDirectory.ToString()); List <FilePath> orderedFiles = files.OrderBy(f => System.IO.File.GetCreationTime(f.ToString())).ToList(); while (orderedFiles.Count > config.NumberOfFilesToKeep) { FilePath file = orderedFiles[0]; cakeContext.Information($"Deleting '{file}'"); if (config.DryRun == false) { cakeContext.DeleteFile(file); } orderedFiles.RemoveAt(0); } }
public static void DeleteDirectories(this ICakeContext cakeContext, DeleteHelpersConfig config) { DirectoryPathCollection dirs = cakeContext.GetDirectories(config.FullDirectory.ToString()); List <DirectoryPath> orderedDirs = dirs.OrderBy(f => System.IO.Directory.GetCreationTime(f.ToString())).ToList(); while (orderedDirs.Count > config.NumberOfFilesToKeep) { DirectoryPath dir = orderedDirs[0]; cakeContext.Information($"Deleting '{dir}'"); if (config.DryRun == false) { DeleteDirectorySettings dirSettings = new DeleteDirectorySettings { Force = true, Recursive = true }; cakeContext.DeleteDirectory(dir, dirSettings); } orderedDirs.RemoveAt(0); } }
// ----------------- Functions ----------------- public override void Run(ICakeContext context) { DeleteHelpersConfig config = ArgumentBinder.FromArguments <DeleteHelpersConfig>(context); context.DeleteDirectories(config); }