2016-01-13 83 views
0

我想讀取並解析文件csv而不保存文件。 我試圖複製另一個流但沒有成功,我試圖直接閱讀和解析csv與「CsvHelper」沒有成功.. 任何想法?Silverlight讀取文件並複製流而不保存文件

using (var sourceStream = openFileDialog1.File.Open(FileMode.Open, FileAccess.Read, FileShare.Read)) 
{ 
    newStream = ((FileStream)sourceStream); 
} 

using (var csv = new CsvReader(new StreamReader(newStream))) 
{ 
    while (csv.Read()) 
    { 
     try 
     { 

     } 
     catch (Exception ex) { } 
    } 
} 
+0

你檢查https://github.com/kentcb/KBCsv或http://pastebin.com/f56674dfb – daryal

回答

1

您處置流「sourceStream」爲時尚早。

試試這個:

using (var sourceStream = openFileDialog1.File.Open(FileMode.Open, FileAccess.Read, FileShare.Read)) 
using (var csv = new CsvReader(new StreamReader(sourceStream))) 
{ 
    while (csv.Read()) 
    { 
     try 
     { 

     } 
     catch (Exception ex) { } 
    } 
} 
+0

THX您的回覆終於讓我找到了很好的解決方案,我在MemoryStream中複製流的數據。 System.IO.FileStream fileStream = openFileDialog1.File.OpenRead(); byte [] textBytes = new byte [fileStream.Length]; fileStream.Read(textBytes,0,textBytes.Length); Stream stream = new MemoryStream(textBytes); – Yvan

+0

爲什麼你需要另一個流? – Memoizer

+0

如果文件很大,您將在內存中擁有額外的數據副本。做什麼的? – Memoizer