【未解决】FileOpenPicker与FileStream共用的坑
2016-01-14 21:01
381 查看
来看一个简单的需求:让用户选择一个文件,然后将这个文件转化为Stream,供后续使用
初始是这样写的:
private async void Button_Click(object sender, RoutedEventArgs e)
{
var picker = new FileOpenPicker();
picker.ViewMode = PickerViewMode.Thumbnail;
picker.FileTypeFilter.Add(".txt");
var file = await picker.PickSingleFileAsync();
if (file != null)
{
FileStream fs;
fs = new FileStream(file.Path, FileMode.Open);
}
}
运行程序,然后boom爆炸!
![](https://img-blog.csdn.net/20160114205405374)
提示使用Task.Run。
好吧那就乖乖改成Task.Run
继续F5运行程序,还是boom爆炸!
![](https://img-blog.csdn.net/20160114205603059)
我好无助啊,纠结了好久还是没能解决问题。
而且我在其他地方读取LocalFolder中的文件都不存在这个问题,下面的代码是没有爆炸的!
var files = await ApplicationData.Current.LocalFolder.GetFilesAsync();
foreach (var file in files)
{
using (var fs = new FileStream(file.Path, FileMode.Open))
{
//
}
}
虽然不知道为什么上面两段代码为什么会爆炸,但是后来还是找到了个解决方案
Stream stream = await file.OpenStreamForReadAsync();就这样,搞定
初始是这样写的:
private async void Button_Click(object sender, RoutedEventArgs e)
{
var picker = new FileOpenPicker();
picker.ViewMode = PickerViewMode.Thumbnail;
picker.FileTypeFilter.Add(".txt");
var file = await picker.PickSingleFileAsync();
if (file != null)
{
FileStream fs;
fs = new FileStream(file.Path, FileMode.Open);
}
}
运行程序,然后boom爆炸!
提示使用Task.Run。
好吧那就乖乖改成Task.Run
继续F5运行程序,还是boom爆炸!
我好无助啊,纠结了好久还是没能解决问题。
而且我在其他地方读取LocalFolder中的文件都不存在这个问题,下面的代码是没有爆炸的!
var files = await ApplicationData.Current.LocalFolder.GetFilesAsync();
foreach (var file in files)
{
using (var fs = new FileStream(file.Path, FileMode.Open))
{
//
}
}
虽然不知道为什么上面两段代码为什么会爆炸,但是后来还是找到了个解决方案
Stream stream = await file.OpenStreamForReadAsync();就这样,搞定
相关文章推荐
- SQL Server误区30日谈 第18天 有关FileStream的存储,垃圾回收以及其它
- SQL Server的FileStream和FileTable深入剖析
- SQL Server FileStream详解
- 如何创建支持FILESTREAM的数据库示例探讨
- FileStream常用的属性与方法总结
- SQL Server 2008中的FileStream介绍
- FileStream类学习笔记
- 解决:System.Data.SqlClient.SqlError: FILESTREAM 功能被禁用
- 在SQL Server 2008中配置文件流(FILESTREAM)
- C#中FileStream
- FileStream对文件、多媒体文件进行 复制 读取 写入
- C# FileStream.Read Method
- 如何在SQL Server上Enable Filestream以及创建一个支持File Stream的DB?
- 在SharePoint 2013 Farm中结合FileStream Provider安装和配置RBS用来管理数据
- 如何修改Blobs Storage Size的最小值以及如何验证Blob已经被存储到自定义的Blob Store里
- C#_FileStream读取文本文件和二进制文件
- FileStream读写文件
- C#中FileStream文件流详解
- C#byte字节流读写乱码问题
- C# 读取txt文件 FileStream,StreamReader,StreamWriter