2010-12-22 33 views
6

जब मैं एक WP7 के अनुप्रयोग में एक फ़ाइल को खोलने का प्रयास:फ़ाइल खोले जाने पर पृथक स्टोरेजफाइलस्ट्रीम अपवाद फेंक दिया जाता है?

IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication(); 
IsolatedStorageFileStream nameXmlFile = new IsolatedStorageFileStream("Names.xml", System.IO.FileMode.Open, isf); 

मैं निम्न त्रुटि प्राप्त:

Operation not permitted on IsolatedStorageFileStream.

मुझे यकीन है कि क्यों इसे खोलने नहीं है, क्योंकि मैं सही इस्तेमाल किया नहीं कर रहा हूँ मेरे ऐप में कहीं और कोड और यह ठीक काम करता है। यह क्यों होता है कि यह क्यों हो रहा है?

संपादित

मैं App.xaml.cs Application_Launching घटना में पृथक भंडारण के लिए फ़ाइल जोड़ने के लिए निम्न कोड का प्रयोग किया:

IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication(); 
IsolatedStorageFileStream feedXmlFile = new IsolatedStorageFileStream("Names.xml",System.IO.FileMode.Create, isf); 
+0

आप इस नाम.एक्सएमएल को कैसे स्टोर करते हैं? –

+0

मैंने ऊपर इस्तेमाल किया कोड जोड़ा। – loyalpenguin

उत्तर

4

IsolatedStorageFileStream कन्स्ट्रक्टर का उपयोग करने वाली समस्याओं में से एक यह है कि उत्पन्न अपवाद सीमित जानकारी है। वैकल्पिक OpenFile विधि में अपवादों का एक समृद्ध सेट है।

अंगूठे के सामान्य नियम के रूप में यदि कोई एपीआई आपको एक निर्माता के साथ या विधि के साथ विधि के साथ एक ही चीज़ करने की अनुमति देता है। इस मामले में इसके बजाय इस कोड को आजमाएं: -

IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication(); 
IsolatedStorageFileStream nameXmlFile = isf.OpenFile("Names.xml", System.IO.FileMode.Open); 

यदि यह विफल हो जाता है तो आप कम से कम संभावित कारण को कम कर देंगे।

यह स्पष्ट प्रतीत हो सकता है लेकिन आपके सृजन कोड में आपने वास्तव में आपके द्वारा बनाई गई फ़ाइल को लिखा और बंद कर दिया है?

+0

यह एक विचार ट्रिगर किया और यह सही था। पहले की विधि में मैं स्ट्रीम (वाह) को बंद करना भूल गया था, और मैंने कहीं पढ़ा है WP7 एक ही समय में कई धाराओं को संसाधित नहीं कर सकता है। मैं बस चाहता हूं कि त्रुटि थोड़ी अधिक विशिष्ट थी ... इसे हल करने में मेरी सहायता करने के लिए धन्यवाद! – loyalpenguin

2

IsolatedStorage अपवाद Application_Launching आग whil एक ज्ञात समस्या है। more details

+0

लिंक मर चुका है। Pls अद्यतन लिंक –

2

जब आप फ़ाइल पहुँच के दौरान एक अपवाद में चलाने, दो चीजों के लिए जाँच:

  • पृथक भंडारण सुरक्षित थ्रेड नहीं है, इसलिए एक 'लॉक' का उपयोग जब फाइल सिस्टम Isolated storage best practices
  • पूरी तरह से पढ़ा तक पहुँचने धारा बंद करने से पहले स्मृति में धारा। तो उदाहरण के लिए एक छवि नियंत्रण के लिए filestream वापस पास मत करो। Reading a bitmap stream from isolated storage
संबंधित मुद्दे