যদিও প্রযুক্তিগতভাবে এটি সরাসরি উত্থাপিত প্রশ্নের উত্তর দেয় না, মূল পোস্টারটি কী করতে চেয়েছিল তা কীভাবে করা যায় তার প্রশ্নের উত্তর দেয়: ফাইলগুলি একত্রিত করুন। যদি কিছু হয় তবে ইন্সটেন্স হান্টার এবং কনস্ট্যান্টিন কী সম্পর্কে কথা বলছেন তা নতুনদের বুঝতে সহায়তা করার জন্য এটি একটি পোস্ট।
আমি ফাইলগুলি একত্রিত করতে এই পদ্ধতিটি ব্যবহার করি (এক্ষেত্রে একটি জেপিজি এবং একটি জিপ)। নোট করুন যে আমি একটি বাফার তৈরি করেছি যা জিপ ফাইলের সামগ্রীতে ভরাট হয়ে যায় (একটি বড় রিড অপারেশনের পরিবর্তে ছোট খণ্ডে), এবং তারপরে জিফ ফাইলের শেষ না হওয়া পর্যন্ত বাফারটি jpg ফাইলটির পিছনে লিখিত হয়ে যায় পৌঁছে:
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);
}
}
}
}