2009-05-21 13 views
10

क्या सी # कक्षा पुस्तकालय के अंदर एक कस्टम बाइनरी फ़ाइल एम्बेड करना संभव है और फिर रनटाइम पर इसे बाइनरी रीडर के साथ पढ़ा जा सकता है?कक्षा पुस्तकालय के अंदर एक बाइनरी फ़ाइल एम्बेड करना

मुझे लगता है कि यह संसाधनों के माध्यम से संभव हो सकता है।

बहुत धन्यवाद

उत्तर

12

आप परियोजना गुणों के माध्यम से संसाधन में फ़ाइल जोड़ कर ऐसा कर सकते हैं। विजुअल स्टूडियो तो आप निम्न कोड

byte[] theFile = myNamespace.Properties.Resources.theBinaryFile; 

कहाँ संसाधन नाम theBinaryFile है का उपयोग करते हुए अपनी फ़ाइल एक्सेस करने का एक आसान वर्ग दे देंगे।

+1

आरई: नीचे दिए गए उत्तर पर मेरी टिप्पणी। यदि मूल फ़ाइल में परिवर्तन तब होता है जब मैं प्रोजेक्ट का निर्माण करता हूं तो इसे स्वचालित रूप से फिर से एम्बेड किया जाएगा? – Andy

+1

हाँ यदि आप फ़ाइल को बदलते हैं तो अगला निर्माण संसाधन फ़ाइल को अपडेट करेगा। आपकी मदद के लिए –

+0

धन्यवाद। – Andy

4

हाँ, यह आसान है:

अपनी परियोजना के लिए फ़ाइल जोड़ें और "कार्रवाई का निर्माण" से "एंबेडेड संसाधन" की स्थापना की।

अपने कार्यक्रम में सही संसाधन ढूँढना

foreach (string name in Assembly.GetExecutingAssembly().GetManifestResourceNames()) 
{ 
    if (name.EndsWith("<name>", StringComparison.InvariantCultureIgnoreCase)) 
    { 
    using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(name)) 
    { 
     // ... 
    } 
    break; 
    } 
} 

कर एक छोटा सा उलझी है फ़ाइल नाम के सामने सामान (नामस्थान आदि अगर (...) के लिए करने के लिए एक ब्रेकपाइंट सेट किया गया है क्योंकि वहाँ असली संसाधन नाम देखें)।

+0

बहुत धन्यवाद, मैं इसे एक भंवर दे दूंगा !! – Andy

+0

यह बहुत अच्छा काम करता है। खासकर जब मैं लगातार फाइल सामग्री बदल रहा हूं और जब मैं प्रोजेक्ट बनाता हूं तो यह फिर से एम्बेड होता है। – Andy