GZipStream - C#

Узнай цену своей работы

Формулировка задачи:

Суть вопроса вот в чем, есть данный код, который сжимает по одиночке все файлы, которые находятся в папке, создавая для каждого файла свой архив, как сделать так, чтобы сжимало всю папку целиком, в 1 фаил.
namespace Console
{
    class Program
    {
        static void Main(string[] args)
        {
            string directoryPath = @"d:\csharpfiles";
            DirectoryInfo directorySel = new DirectoryInfo(directoryPath);
 
            foreach (FileInfo FileToCompress in directorySel.GetFiles())
            {
                Compress(FileToCompress);
            }
            
        }
        public static void Compress(FileInfo FileToCompress)
        {
            using (FileStream origFileStream = FileToCompress.OpenRead())
            {
                if ((File.GetAttributes(FileToCompress.FullName) & FileAttributes.Hidden) != FileAttributes.Hidden & FileToCompress.Extension != ".rar")
                {
                    using (FileStream compressedFileStream = File.Create(FileToCompress.FullName + ".rar"))
                    {
                        using (GZipStream compressionStream = new GZipStream(compressedFileStream, CompressionMode.Compress))
                        {
                            origFileStream.CopyTo(compressionStream);
                            System.Console.WriteLine("Compressed {0} from {1} to {2} bytes.",FileToCompress.Name,FileToCompress.Name.ToString(),compressedFileStream.Length.ToString());
                            System.Console.ReadLine();
                        }
                    }
                }
            }
        }
    }
}

Решение задачи: «GZipStream»

textual
Листинг программы
class ArchiveEntry
{
    public string Path;
    public int CompressedLength;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5