static void Main(string[] args) { Console.CancelKeyPress += (sender, ceArgs) => { StatusManager.ProcessIsCanceled = true; ConsoleLogger.WriteDiagnosticInfo(PROCESS_CANCELLED); Environment.Exit(FAILURE_EXIT_CODE); }; try { Validation.CheckInputParameters(args); var inputFile = new FileInfo(args[1]); var threadManager = new ThreadManager(); FileReader fileReader = null; FileWriter fileWriter = null; Archiever archiever = null; OperationType operationType = OperationType.Compress; GZipBlockArchiver compressor = new GZipBlockArchiver(args[1], args[2], threadManager, inputFile.Length); if (args[0] == Dictionary.COMPRESS_COMMAND) { fileReader = new UncompressedFileReader(args[1], compressor.CompressedDataManagers); fileWriter = new CompressedFileWriter(args[2], compressor.DictionaryWritingManager); archiever = new Compressor(compressor.CompressedDataManagers, compressor.DictionaryWritingManager); } else { fileReader = new CompressedFileReader(args[1], compressor.CompressedDataManagers); fileWriter = new DecompressedFileWriter(args[2], compressor.DictionaryWritingManager); archiever = new Decompressor(compressor.CompressedDataManagers, compressor.DictionaryWritingManager); operationType = OperationType.Decompress; } var processResult = compressor.Start(fileReader, archiever, fileWriter, operationType); Console.CursorTop += 1; if (processResult && !StatusManager.ProcessIsCanceled) { ConsoleLogger.WriteSuccessInfo($"{args[2]} : {SUCCESS_CREATED}"); } else { ConsoleLogger.WriteError($"{args[2]}: {FAILURE_CREATED}"); } } catch (Exception ex) { ConsoleLogger.WriteError(FAILURE_CREATED); Console.WriteLine(END_PROCESS); Console.ReadKey(); } }
public static void Decompress(ITarget target, Stream stream, bool overwrite = true) { Decompressor.Decompress(target.TargetDirectory, stream, overwrite); }