the following code is a function to compress each file to a zip file. Now, i want to be able to make a compress limit.
It means, if a file after compress is 7Mb, and my limit is 5Mb, i will get 2 zip files, one will be a 5Mb and the second file will be 2Mb.
my function:
private void CompressFile(string filePath)
    {
        this.CreateZipFolderPath();
        Crc32 crc32 = new Crc32();
        string fileName = Path.GetFileName(filePath);
        string zippedFilePath = XML_Manager.ZippedPALFilePath + fileName;
        using (ZipOutputStream stream = new ZipOutputStream(File.Create(zippedFilePath.Substring(0, zippedFilePath.LastIndexOf('.')) + ".zip")))
        {
            stream.UseZip64 = UseZip64.Off;
            stream.SetLevel(9);
            byte[] buffer = new byte[4096];
            ZipEntry entry = new ZipEntry(filePath.Substring(filePath.LastIndexOf('\\') + 1));
            entry.DateTime = DateTime.Now;
            stream.PutNextEntry(entry);
            using (FileStream fs = File.OpenRead(filePath))
            {
                int sourceBytes;
                do
                {
                    sourceBytes = fs.Read(buffer, 0, buffer.Length);
                    stream.Write(buffer, 0, sourceBytes);
                }
                while (sourceBytes > 0);
            }
            stream.Finish();
        }
    }
Winrar allows me to do it, here is an example of what i mean:
