示例#1
0
        /// <summary>
        /// Извлекает файл из архива Gzip.
        /// </summary>
        /// <param name="setting">Входные параметры, для удобства собраны в класс</param>
        /// <returns>В случае успеха возвращает 0, при ошибке 1</returns>
        public int ExtractFile(ArchiveSettings setting)
        {
            try
            {
                _archiveFilename = setting.InputFilename;

                _archiveStream = new FileStream(_archiveFilename, FileMode.Open, FileAccess.Read);

                ThreadSchema schema = new ThreadSchema(this);
                schema.Run(setting.OutpuFilename, setting.ThreadCount);

                return(0);
            }
            catch (Exception ex)
            {
#if DEBUG
                Console.WriteLine("ERROR: " + ex.Message);
#endif
                return(1);
            }
        }
示例#2
0
        /// <summary>
        /// Упаковывает файл алгоритмом GzipStream.
        /// </summary>
        /// <param name="settings">Входные параметры, для удобства собраны в класс</param>
        /// <returns>В случае успеха возвращает 0, при ошибке 1</returns>
        public int PackFile(ArchiveSettings settings)
        {
            try
            {
                // считываем настройки алгоритма
                string inputFilename = settings.InputFilename;
                string outpuFilename = settings.OutpuFilename;
                int    workerCount   = settings.ThreadCount;

                _srcStream = new FileStream(inputFilename, FileMode.Open, FileAccess.Read);

                ThreadSchema schema = new ThreadSchema(this);
                schema.Run(outpuFilename, workerCount);
                return(0);
            }
            catch (Exception ex)
            {
#if DEBUG
                // в режиме отладки, ошибку показывать можно
                Console.WriteLine("ERROR: " + ex.Message);
#endif
                return(1);
            }
        }