// Tools can override the default behavior as needed public virtual bool Update(string updateFile) { // Make sure the tool folder exists and is empty string toolPath = GetToolFolder(); if (!FileEx.CreateDirectory(toolPath) || !FileEx.DeleteInsideDirectory(toolPath)) { return(false); } // Extract the update file Log.Logger.Information("Extracting {UpdateFile} ...", updateFile); return(Tools.SevenZip.UnZip(updateFile, toolPath)); }
public int Run() { // Result file FileIterationResultFile resultFile = new FileIterationResultFile(Config.ResultFile); ConsoleEx.WriteLine($"Writing results to : \"{resultFile.FileName}\""); resultFile.WriteHeader(); ConsoleEx.WriteLine(""); // Run the test for each of the target folders int result = 0; foreach (string target in Config.Targets) { // Clear target directory ConsoleEx.WriteLine($"Starting CreateTest for \"{target}\""); if (!FileEx.CreateDirectory(target) || !FileEx.DeleteInsideDirectory(target)) { resultFile.AddFailedResult(Config, target); ConsoleEx.WriteLineError($"Failed to create or clear target \"{target}\""); ConsoleEx.WriteLine(""); // Next target result = -1; continue; } // Recursively create files and folders Stopwatch timer = new Stopwatch(); timer.Start(); CreateFilesInFolder(target, Config.FolderDepth); timer.Stop(); TimeSpan createTime = timer.Elapsed; ConsoleEx.WriteLine($"CreateTest Time : {createTime}"); ConsoleEx.WriteLine(""); // Recursively read files and folders ConsoleEx.WriteLine($"Starting ReadTest for \"{target}\""); timer.Restart(); ReadFilesInFolder(target, out int folderCount, out int fileCount); timer.Stop(); TimeSpan readTime = timer.Elapsed; ConsoleEx.WriteLine($"ReadTest Time : {readTime}, Folder Count : {folderCount}, File Count : {fileCount}"); ConsoleEx.WriteLine(""); // Clear target directory ConsoleEx.WriteLine($"Starting DeleteTest for \"{target}\""); timer.Restart(); FileEx.DeleteInsideDirectory(target); timer.Stop(); TimeSpan deleteTime = timer.Elapsed; ConsoleEx.WriteLine($"DeleteTest Time : {deleteTime}"); ConsoleEx.WriteLine(""); // Write result resultFile.AddResult(Config, target, folderCount, fileCount, createTime, readTime, deleteTime); } return(result); }