В вопросе собственно озвучил всё: как программным путём разбить архив Zip на части? Программа на языке C#
Можете простым кодом вроде этого поделить уже готовый zip-файл на части:
public static void SplitFile(string source, long partSize, string destinationFormat, int firstFileNumber = 0)
{
var sourceStream = File.OpenRead(source);
var buffer = new byte[80*1024];
var position = sourceStream.Position;
var fileNumber = firstFileNumber;
while (position < sourceStream.Length)
{
var filename = String.Format(destinationFormat, fileNumber);
using(var destinationStream = File.Create(filename))
{
var count = 0;
do
{
count = sourceStream.Read(buffer, 0, (int)Math.Min(buffer.LongLength, partSize - destinationStream.Position));
destinationStream.Write(buffer, 0, count);
position = count;
} while (count > 0);
}
fileNumber ;
}
}
SplitFile(
source: @"C:\test\test.zip",
destinationFormat: @"C:\test\test.z{0
2}",
partSize: 100000*1024
);
Если хотите сразу писать в несколько файлов, то конструктору ZipFile можно подавать в качестве аргумента экземпляры Stream/Filestream.