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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д