【问题标题】:How to fix exception MethodAccessException during file reading?如何在文件读取期间修复异常 MethodAccessException?
【发布时间】:2011-03-28 11:59:38
【问题描述】:

我必须阅读在我的项目 DataMid/Bigram_MidWord.txt 中添加的文本文件,其中 DataMid 是一个文件夹,而 Bigram_MidWord.txt 是一个要读取的文件。 当我写声明时

FileStream fileStream = new FileStream(@"/SourceCode,component/DataMid/Bigram_MidWord.txt", FileMode.Open, FileAccess.ReadWrite);

然后我得到如下异常:
Attempt to access the method failed: System.IO.FileStream..ctor(System.String, System.IO.FileMode, System.IO.FileAccess)

我该如何解决这个问题?

【问题讨论】:

  • 你为文件设置了什么构建操作?
  • 构建动作是资源

标签: silverlight-4.0 windows-phone-7 filereader


【解决方案1】:

问题是您试图使用FileStream 来访问嵌入在您的应用程序的XAP 文件中的资源。 FileStream 用于访问文件系统(例如隔离存储)。

要访问作为 XAP 文件中资源的文本文件,可以使用以下代码:

string text;
Uri uri = new Uri("("/AssembyName;component/DataMid/Bigram_MidWord.txt", UriKind.RelativeOrAbsolute);
StreamResourceInfo sri = App.GetResourceStream(uri);
StreamReader sr = new StreamReader(sri.Stream);
text= sr.ReadToEnd();
sr.Close();

【讨论】:

  • 我尝试这样做,但我的 Visual Studio 2010 中无法识别 ResourceInfo。
  • 抱歉,应该是StreamResourceInfo。我现在已经更正了我的答案。
  • 我试过了,但不知道为什么我把 sri 设置为 null 。我还通过将文本文件构建操作作为资源进行了尝试。
  • @rubyraj 由于它是作为资源添加的,因此您必须使用 Uri uri = new Uri("/AssembyName;component/DataMid/Bigram_MidWord.txt", UriKind.RelativeOrAbsolute); 确保将 AssemblyName 更改为您的程序集名称。
  • @rubyraj 我想你也可以使用Uri uri = new Uri("../DataMid/Bigram_MidWord.txt", UriKind.RelativeOrAbsolute);.But not Tested
猜你喜欢
  • 1970-01-01
  • 2013-12-13
  • 2019-08-29
  • 1970-01-01
  • 2019-09-19
  • 1970-01-01
  • 1970-01-01
  • 2012-06-17
  • 1970-01-01
相关资源
最近更新 更多