Mặc dù về mặt kỹ thuật, điều này không trả lời trực tiếp câu hỏi được đặt ra, nhưng nó trả lời câu hỏi về cách thực hiện những gì người đăng ban đầu muốn làm: kết hợp các tệp. Nếu bất cứ điều gì, đây là một bài viết để giúp người mới hiểu Instance Hunter và Konstantin đang nói về điều gì.
Đây là phương pháp tôi sử dụng để kết hợp các tệp (trong trường hợp này là jpg và zip). Lưu ý rằng tôi tạo một bộ đệm chứa đầy nội dung của tệp zip (trong các đoạn nhỏ thay vì trong một thao tác đọc lớn), và sau đó bộ đệm được ghi vào mặt sau của tệp jpg cho đến khi kết thúc tệp zip đạt:
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);
}
}
}
}