2012-05-24 99 views
0

我正在研究一個具有目錄的應用程序,它通過XML將它從網絡中拉出來,寫入本地XML文件,然後從那裏讀取以顯示聯繫人。我與我的IsolatedStorageFileStream無法正常工作,因爲該操作是不允許的。這裏是我的代碼:Windows Phone 7在IsolatedStorageFileStream上不允許操作

IsolatedStorageFile isoStorage = IsolatedStorageFile.GetUserStoreForApplication(); 
     IsolatedStorageFileStream file = isoStorage.OpenFile("Components/contacts.xml", FileMode.OpenOrCreate, FileAccess.Read); 
     var reader = new StreamReader(file); 
     XElement appDataXml = XElement.Load(reader); 
     lstContacts.ItemsSource = from contact in appDataXml.Descendants("contact") 
            select new ContactItem 
            { 
             ImageSource = contact.Element("Image").Value, 
             FName = contact.Element("FName").Value, 
             LName = contact.Element("LName").Value, 
             Extension = contact.Element("Extension").Value, 
             Email = contact.Element("Email").Value, 
             Cell = contact.Element("Cell").Value, 
             Title = contact.Element("TitleName").Value, 
             Dept = contact.Element("deptName").Value, 
             Office = contact.Element("officename").Value, 
             ID = contact.Element("ID").Value 
            }; 

我可以從互聯網上直接拉它,並把它變成了lstContacts,但我似乎無法即使打開該文件將其寫入到文件(這樣它可脫機)。 Here is my actual error put to a pastebin。這直接發生在IsolatedStorageFileStream file = isoStorage.OpenFile("Components/contacts.xml", FileMode.OpenOrCreate, FileAccess.Read);

任何幫助,非常感謝。

回答

0

我發現這個問題。這個問題是我在運行這個程序之前已經在我的系統上創建了這個文件,但它不是那樣的。

0

當您下載並保存文件時,請確保在嘗試再次閱讀文件之前關閉該文件。

你應該換文件使用的塊,因爲這是一個快速和安全的方式來做到這一點的讀/寫器(參見下面的MSDN樣本) http://msdn.microsoft.com/en-us/library/aa664736(v=vs.71).aspx

using System; 
using System.IO; 
class Test 
{ 
    static void Main() { 
     using (TextWriter w = File.CreateText("log.txt")) { 
     w.WriteLine("This is line one"); 
     w.WriteLine("This is line two"); 
     } 
     using (TextReader r = File.OpenText("log.txt")) { 
     string s; 
     while ((s = r.ReadLine()) != null) { 
      Console.WriteLine(s); 
     } 
     } 
    } 

}

相關問題