2013-12-16 33 views
1

我发现了一个非常恼人的问题,我放弃了自己寻找答案。我目前正在研究一个Windows 8商店应用程序,我正在使用MS Visual Studio 2012(当然)。在Windows应用商店应用中使用StreamReader

我想在我的应用程序启动时读取一个csv文件。我用类创建了一个新的.cs文件,其中一个应该拥有这个文件读取方法。在这一点上是everyting不错,但是当我开始实施的读者,我有以下错误信息:

为System.IO.StreamReader.StreamReader的最佳重载的方法匹配(System.IO.Stream )'有一些无效的论点。 参数1:无法从“字符串”转换“System.IO.Stream”

我想知道,因为所有的MS引用说,System.IO.StreamReader可以有一个字符串参数。奇怪的。只是为了好玩,我创建了一个简单的控制台应用程序,我复制了所有这些StreamReader的东西,什么是奇迹,它是否正常工作...

也许我知道太少了关于Win 8 Store应用程序,但我真的可以找不到有关此问题的任何信息。

从商店的应用程序的代码:

public void readCSV() 
{ 
    string path = @"ms-appdata://Asstes/Content/data.csv"; 
    try 
    { 
     using (System.IO.StreamReader sr = newSystem.IO.StreamReader(path)) 
     { 

      while (sr.Peek() >= 0) 
      { 
       Console.WriteLine(sr.ReadLine()); 
      } 
     } 
    } 
    finally 
    { 

    } 

} 

而这是由编译器所接受的代码(作为控制台应用程序):

static void Main(string[] args) 
{ 

    System.IO.StreamReader reader; 
    reader = new System.IO.StreamReader("path.csv"); 
    reader.ReadLine(); 
} 
+0

哦,所以我对此知之甚少......好吧,谢谢。但是这个问题比另一个更具体。 –

+0

嗯,链接的答案的营养不再可用,因为我看到... –

+0

我对包含新链接的答案添加了评论。 – vcsjones

回答

0

我已经使用这个阅读资源文件:

public static async Task<IList<Person>> GetPeople() 
    { 
     var file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/People.xml")); 
     var stream = await file.OpenStreamForReadAsync(); 
     using (StreamReader sr = new StreamReader(stream)) 
     { 
      while (sr.Peek() >= 0) 
      { 
       var a = sr.ReadLine(); 
      } 
     } 
    } 

People.xml具有Content/Do not copy的构建操作。