2013-12-16 35 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的構建操作。