/// <summary> /// Обновление listBox /// </summary> /// <param name="directory">путь к директории</param> /// <param name="listbox">поле для вывода списка файлов</param> /// <param name="path">поле для вывода пути к директории</param> /// <param name="files">список файлов в директории</param> private void UpdateList(FileProcessor directory, ListBox listbox, TextBox path, IList <FileInfo> files) { listbox.Items.Clear(); path.Text = directory.DirectoryPath; directory.GetFiles(); files = directory.FilesList; foreach (FileInfo file in files) { listbox.Items.Add(file.Name); } }
/// <summary> /// Выполняет сжатие файла /// </summary> /// <param name="file">Входной файл</param> /// <param name="directory">Директория для размещения сжатого файла</param> public override void Process(FileInfo file, FileProcessor directory) { using (FileStream inFile = file.OpenRead()) { var outFilePath = Path.Combine(directory.DirectoryPath, file.Name); using (var outFile = File.Create(outFilePath + ".gz")) { using (var compress = new GZipStream(outFile, CompressionMode.Compress)) { inFile.CopyTo(compress); } } } }
/// <summary> /// Выполняет разжатие файла /// </summary> /// <param name="file">Входной файл</param> /// <param name="directory">Директория для размещения разжатого файла</param> public override void Process(FileInfo file, FileProcessor directory) { using (var inFile = file.OpenRead()) { string currentFile = file.Name; string originalName = currentFile.Remove(currentFile.Length - file.Extension.Length); var outFilePath = Path.Combine(directory.DirectoryPath, originalName); using (var outFile = File.Create(outFilePath)) { using (var decompress = new GZipStream(inFile, CompressionMode.Decompress)) { decompress.CopyTo(outFile); } } } }
/// <summary> /// Выполняет процесс /// </summary> /// <param name="file">Входной файл</param> /// <param name="directory">Директория для размещения выходного файла</param> public abstract void Process(FileInfo file, FileProcessor directory);