Embora tecnicamente isso não responda diretamente à pergunta feita, ele responde à pergunta de como fazer o que o pôster original queria: combinar arquivos. Se alguma coisa, este é um post para ajudar os novatos a entender o que Instance Hunter e Konstantin estão falando.
Este é o método que eu uso para combinar arquivos (neste caso, um jpg e um zip). Observe que eu crio um buffer que é preenchido com o conteúdo do arquivo zip (em pequenos pedaços em vez de em uma grande operação de leitura) e, em seguida, o buffer é gravado na parte de trás do arquivo jpg até o final do arquivo zip. alcançado:
private void CombineFiles(string jpgFileName, string zipFileName)
{
using (Stream original = new FileStream(jpgFileName, FileMode.Append))
{
using (Stream extra = new FileStream(zipFileName, FileMode.Open, FileAccess.Read))
{
var buffer = new byte[32 * 1024];
int blockSize;
while ((blockSize = extra.Read(buffer, 0, buffer.Length)) > 0)
{
original.Write(buffer, 0, blockSize);
}
}
}
}