Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
 public static void Decompress(ITarget target, Stream stream, bool overwrite = true)
 {
     Decompressor.Decompress(target.TargetDirectory, stream, overwrite);
 }