Aunque técnicamente esto no responde directamente a la pregunta planteada, sí responde a la pregunta de cómo hacer lo que el cartel original quería hacer: combinar archivos. En todo caso, esta es una publicación para ayudar a los novatos a comprender de qué están hablando Instance Hunter y Konstantin.
Este es el método que uso para combinar archivos (en este caso, un jpg y un zip). Tenga en cuenta que creo un búfer que se llena con el contenido del archivo zip (en pequeños fragmentos en lugar de en una operación de lectura grande), y luego el búfer se escribe en la parte posterior del archivo jpg hasta el final del archivo zip alcanzado:
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);
}
}
}
}