예제 #1
0
 /// <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);
     }
 }
예제 #2
0
 /// <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);
             }
         }
     }
 }
예제 #3
0
 /// <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);
             }
         }
     }
 }
예제 #4
0
 /// <summary>
 /// Выполняет процесс
 /// </summary>
 /// <param name="file">Входной файл</param>
 /// <param name="directory">Директория для размещения выходного файла</param>
 public abstract void Process(FileInfo file, FileProcessor directory);