I have a program written in C# which should save a zip file every n records (like 500).

My idea was using the mod operator (%) and where the result of the operation is zero then write the file. Which is good, but: what if I have 520 records? I should write 500 files inside the first zip and then 20 file on the second one.

Here the code:

```
        using (ZipFile zip = new ZipFile())
        {
            zip.CompressionLevel = Ionic.Zlib.CompressionLevel.Level8;
            zip.CompressionMethod = CompressionMethod.Deflate;
            int indexrow = 0;
           foreach(DataRow row in in_dt.Rows)
            {
                zip.AddFile(row["Path"].ToString(),"prova123");
                if(indexrow % 500 == 0)
                {
                    using (var myZipFile = new FileStream("c:\\tmp\\partial_"+indexrow.ToString()+".zip", FileMode.Create))
                    {
                        zip.Save(myZipFile);
                    }
                    indexrow = indexrow++;
                }
            }
        }
    }

```

in\_dt is a datatable which contains all the file paths on filesystem.

zip object is an object based on the dotnetzip library.