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;
}