Avatar ·

C# में स्ट्रीम से बाइट ऐरे कैसे बनाएं? पूर्ण गाइड

सभी को नमस्ते! मैं C# में नौसिखिया हूं और एक ऐप पर काम कर रहा हूं जो इंटरनेट से फ़ाइलें डाउनलोड करता है। मुझे NetworkStream या FileStream से सभी डेटा को byte[] ऐरे में पढ़ना है। समस्या यह है कि मुझे स्ट्रीम का आकार पहले से नहीं पता। मैंने Length प्रॉपर्टी का उपयोग करने की कोशिश की, लेकिन कई स्ट्रीम के लिए यह NotSupportedException फेंकता है। यह मेरा वर्तमान कोड है जो काम नहीं करता:
// स्ट्रीम को बाइट ऐरे में पढ़ने की कोशिश
byte[] buffer = new byte[stream.Length]; // त्रुटि: 'Stream' does not support seeking
stream.Read(buffer, 0, buffer.Length);
यह त्रुटि तब होती है जब मैं नेटवर्क स्ट्रीम (NetworkStream) या HTTP रिस्पॉन्स से स्ट्रीम के साथ काम करता हूं। मैं समझता हूं कि डेटा को भागों में पढ़ना होगा, लेकिन लूप को सही तरीके से कैसे व्यवस्थित करूं यह नहीं पता। मैंने MemoryStream के बारे में कुछ देखा है, लेकिन इसका उपयोग कैसे करें यह सुनिश्चित नहीं है। कृपया बताएं कि स्ट्रीम को बाइट ऐरे में सही और कुशलता से कैसे बदलें? अधिमानतः .NET 3.5 के लिए कोड उदाहरण के साथ (मेरा लीगेसी प्रोजेक्ट है)। पहले से धन्यवाद।