SharpZipLib Library Compressing folders with subfolders with high compression and effective time

I used many existing codes, and I tried to compress the folder in many ways, but still I have a problem with the time and size of the folder (still about the same size). this code is taken from the source of the library and still does not give the desired result

static void Main(string[] args) { //copyDirectory(@"C:\x", @"D:\1"); ZipOutputStream zip = new ZipOutputStream(File.Create(@"d:\2.zip")); zip.SetLevel(9); string folder = @"D:\music"; ZipFolder(folder, folder, zip); zip.Finish(); zip.Close(); } public static void ZipFolder(string RootFolder, string CurrentFolder, ZipOutputStream zStream) { string[] SubFolders = Directory.GetDirectories(CurrentFolder); foreach (string Folder in SubFolders) ZipFolder(RootFolder, Folder, zStream); string relativePath = CurrentFolder.Substring(RootFolder.Length) + "/"; if (relativePath.Length > 1) { ZipEntry dirEntry; dirEntry = new ZipEntry(relativePath); dirEntry.DateTime = DateTime.Now; } foreach (string file in Directory.GetFiles(CurrentFolder)) { AddFileToZip(zStream, relativePath, file); } } private static void AddFileToZip(ZipOutputStream zStream, string relativePath, string file) { byte[] buffer = new byte[4096]; string fileRelativePath = (relativePath.Length > 1 ? relativePath : string.Empty) + Path.GetFileName(file); ZipEntry entry = new ZipEntry(fileRelativePath); entry.DateTime = DateTime.Now; zStream.PutNextEntry(entry); using (FileStream fs = File.OpenRead(file)) { int sourceBytes; do { sourceBytes = fs.Read(buffer, 0, buffer.Length); zStream.Write(buffer, 0, sourceBytes); } while (sourceBytes > 0); } } 
+4
source share
1 answer

line folder = @ "D: \ music";

If you are trying to pin MP3 files, you will not see many shortcuts.

There are limits on how much the compression algorithm can do anyway. And more compression always takes more time.

0
source

Source: https://habr.com/ru/post/1379264/


All Articles