在Windows Phone 8.1(WinRT)中,我从用户的文档文件夹中抓取一个文件并尝试两次读取它。一旦读取每一行并获得进度跟踪目的的总计数。第二次实际解析数据。但是,在第二次传递时,我得到“文件不可读”类型错误。所以我对发生的事情有一点了解,但并不完全。我收到此错误是因为文件流已经在文件的末尾了吗?我不能只是从同一个文件中打开一个新流,还是必须关闭第一个流?
这是我的代码:
public async Task UploadBerData(StorageFile file)
{
_csvParser = new CsvParser();
var stream = await file.OpenAsync(FileAccessMode.Read);
using (var readStream = stream.AsStreamForRead())
{
dataCount = _csvParser.GetDataCount(stream.AsStreamForRead());
// Set the progressBar total to 2x dataCount.
// Once for reading, twice for uploading data
TotalProgress = dataCount * 2;
CurrentProgress = 0;
}
var csvData = _csvParser.GetFileData(stream.AsStreamForRead());
...
}
答案 0 :(得分:1)
使用Stream
后,position
是流长度的结尾。
您可以将其设置为开始再次读取流。
在解析数据函数之前添加以下行。
stream.Position = 0;