2012-03-02 4 views
5

मैं सी # और Monodroid का उपयोग कर इस उदाहरण को लागू करने की कोशिश कर रहा है, लेकिन पढ़ने और एक परिसंपत्ति फ़ाइल लिख कठिनाइयों हो रहा है पढ़ने के लिए कैसे:एसेट फ़ाइलें का उपयोग कर वी.एस. और Monodroid

http://docs.xamarin.com/android/advanced_topics/using_android_assets

मैं उपयोग कर रहा हूँ एमुलेटर, डिवाइस नहीं।

सबसे पहले, मुझे संपत्ति के लिए नेमस्पेस ढूंढने में परेशानी हो रही है। खोलें। आखिर में जो मिला वह

const string lfn = MyAssetFile.txt; 
System.IO.StreamReader(Android.Content.Res.Resources.System.Assets.Open(lfn); 

क्या यह सही नामस्थान है? सब से

दूसरा, मेरी एसेट फ़ाइल AndroidAsset के रूप में वी.एस. "गुण" फलक में "कॉपी हमेशा" चिह्नित है और, लेकिन मेरी फ़ाइल को पढ़ने के लिए प्रयास हमेशा असफल (फ़ाइल नहीं मिली) इस कथन का उपयोग:

string settings = ""; 
using (StreamReader sr = new System.IO.StreamReader (Android.Content.Res.Resources.System.Assets.Open(lfn))) settings = sr.ReadToEnd(); 

क्या मेरे पास मेरी वीएस सेटिंग्स गलत हैं ताकि संपत्ति फ़ाइल को एमुलेटर पर कॉपी नहीं किया जा रहा हो, या यह ठीक से कॉपी किया जा रहा है लेकिन मेरा कोड खोलने/पढ़ने के लिए गलत है?

+0

वीएस गुणों में संपत्ति फ़ाइल के लिए बिल्ड एक्शन सेट करना न भूलें: BuildAction: AndroidAsset – AndyM

उत्तर

9

आप का उपयोग करना चाहिए:

const string lfn = "MyAssetFile.txt"; 
string settings = string.Empty; 

// context could be ApplicationContext, Activity or 
// any other object of type Context 
using (var input = context.Assets.Open(lfn)) 
using (StreamReader sr = new System.IO.StreamReader(input)) 
{ 
    settings = sr.ReadToEnd(); 
} 

अगर मैं सही ढंग से याद, जैसा कि मैंने, Android.Content.Res.Resources.System.Assets संदर्भ एंड्रॉयड संपत्ति अपनी परियोजना संपत्ति नहीं पल में एक IDE नहीं मिला है। आप अपने प्रोजेक्ट संपत्तियों का उपयोग करना चाहते हैं, इसलिए आपको को अपने Activities या Contexts से उपयोग करने की आवश्यकता है।

उदाहरण के लिए: Activity कक्षा में Assets नामक एक संपत्ति है। यह वही है जो आप उपयोग करते हैं। या आप View की Context.Assets संपत्ति का उपयोग करते हैं।

+0

धन्यवाद, बहुत अच्छा काम करता है। –

-4

या बस शीर्ष पर जोड़ें: System.IO का उपयोग कर

;

और यह काम करेगा।

Xamarin टीम कभी-कभी using सामान का उल्लेख करने के लिए भूल जाती है।

संबंधित मुद्दे