2010-11-03 5 views
5

मैं सिल्वरलाइट में एक विंडोज फोन 7 ऐप बना रहा हूं। मुझे IsolatedStorage में कठिनाई हो रही है।.NET: IsolatedStorageException

 IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication(); 
     if (!storage.FileExists(STORIES_FILE)) 
     { 
      storage.CreateFile(STORIES_FILE); 
     } 

     string contents; 

     // fails here 
     using (IsolatedStorageFileStream stream = storage.OpenFile(STORIES_FILE, FileMode.Open)) 
     { 
      using (StreamReader reader = new StreamReader(stream)) 
      { 
       contents = reader.ReadToEnd(); 
      } 
     } 

अपवाद है:

"Operation not permitted on IsolatedStorageFileStream." 
System.Exception {System.IO.IsolatedStorage.IsolatedStorageException} 

क्या मैं गलत यहाँ क्या कर रही हो सकता है? MSDN says कि पृथक संग्रहण हटा दिया या अक्षम होने पर यह अपवाद फेंक दिया जाता है। क्या यह हो सकता है? मैं एमुलेटर पर इस समस्या का सामना कर रहा हूँ।

अद्यतन: ऐसा लगता है कि पहली बार जब मैं एमुलेटर पर ऐप चला रहा हूं। ऐप दुर्घटनाग्रस्त होने के बाद, मैं इसे फिर से एमुलेटर पर चलाता हूं, और यह समस्या नहीं होती है।

अद्यतन 2: का प्रयोग FileMode.Open के बजाय FileMode.OpenOrCreate प्रकट होता है समस्या हल की है।

+0

मैं FileMode.OpenOrCreate उपयोग कर रहा हूँ, लेकिन अभी भी एक ही मुद्दा हो रही है। पहली बार यह सफल होता है, लेकिन सेकेंड का समय विफल हो जाता है। – swinefeaster

उत्तर

3

पहली बार जब आप अपने आवेदन चलाने के लिए, फ़ाइल वहाँ नहीं है, ऐसा करें:

using (IsolatedStorageFileStream stream = storage.OpenFile(STORIES_FILE, FileMode.OpenOrCreate)) 
     { 
      using (StreamReader reader = new StreamReader(stream)) 
      { 
       contents = reader.ReadToEnd(); 
      } 
     } 
+0

लेकिन मैं 'storage.CreateFile (FILE_NAME) 'कह रहा हूं। वह कुछ नहीं करता है? –

+0

हाँ, लेकिन कोड के उस टुकड़े में, आपने स्टोरेज द्वारा लौटाई गई स्ट्रीम का उपयोग नहीं किया। क्रिएटफाइल कॉल। जब तक कि उदाहरण खुद को फ्लश या बंद नहीं किया जाता है, तब भी फ़ाइल मौजूद नहीं होगी। FileMode पैरामीटर में परिवर्तन के साथ, आप इसे साफ़ करने के लिए CreateFile पर कॉल को हटा सकते हैं। –

+0

तो मुझे 'स्टोरेज की तरह कुछ चाहिए। क्रेटफाइल (" फू ")। फ्लश()'? –