2010-10-15 138 views
3

我在開發一個應用程序在Windows Phone 7中,我需要閱讀一個文本文件。我寫了一個代碼,但當我調試該代碼時,它會給出一個錯誤「方法訪問異常」。 相同的代碼在C#窗體表單應用中工作。我不知道什麼是問題。 PLZ建議我解決這個問題。 我的代碼是這樣的:讀取文件在c#.net

namespace fileread 
{ 
    public partial class MainPage : PhoneApplicationPage 
    { 

     private string line; 

     // Constructor 
     public MainPage() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, RoutedEventArgs e) 
     { 
      StreamReader sr = new StreamReader(@"D:\abc.txt"); 
      line = sr.ReadLine(); 
      MessageBox.Show(line); 
     } 

發生錯誤在行: 「行= sr.ReadLine();」

回答

3

正如大多數其他現代移動設備一樣,運行在WP7上的應用程序出於安全性和可靠性原因而被沙箱化。這也意味着你不能在無限制的環境中進行隨機I/O。

WP7確實提供使用熟悉的結構作爲目錄和文件的沙盒持久性,稱爲隔離存儲。嘗試查找IsolatedStorageFile.GetUserStoreForApplication()並從那裏拿走。

更新:可以找到一個示例here

+0

k ...但是你能不能更詳細地描述我,接下來我會做什麼。我更新的發展。一些代碼形式的細節.... – user449199 2010-10-15 07:54:46

6

您是否試圖在WP7仿真器的這一行中的實際計算機上打開一個文件?

StreamReader sr = new StreamReader(@"D:\abc.txt"); 

由於安全原因,應用程序彼此隔離,您絕對無法通過電話進行此操作。

如果你需要在一個靜態文本文件閱讀,可以考慮把它作爲項目的一部分,並引用它,而不是有使用System.Windows.Application.GetResourceStream方法:

var resource = System.Windows.Application.GetResourceStream(new Uri("textfile.txt", UriKind.Relative) 

this question爲更多信息。

+0

k。接下來要做什麼...意味着如何使用messagebox.show方法讀取文件並顯示數據。你能解釋更多嗎?代碼形式如第一點 – user449199 2010-10-16 05:28:18

+0

因此,如果您只是將txt文件放入解決方案中,請將構建操作設置爲資源,並使用GetResourceStream方法,您可以像TextReader那樣讀取txt文件的內容爲字符串,並傳遞對文本框或類似的東西。 * WP7有* no * MessageBox.Show()方法。 – 2010-10-18 01:26:59

+0

修改我之前對此的評論;實際上現在(謝天謝地)一個MessageBox.Show :) – 2011-12-21 00:35:17