当前位置: 代码迷 >> Windows Mobile >> wp8 终究能用FileStream吗?MSDN的一句话好奇怪,求解读
  详细解决方案

wp8 终究能用FileStream吗?MSDN的一句话好奇怪,求解读

热度:31   发布时间:2016-04-25 07:11:51.0
wp8 到底能用FileStream吗?MSDN的一句话好奇怪,求解读
因为我发现用winform的filestream保存图片,WP8 debug的时候正常运行,可是上传到应用商店后,再下载,运行时老闪退,经过多次观察,我感觉这是文件操作的问题(请求验证码就闪退,不请求就可以运行)。  FileStream aFile = new FileStream(loginInfo.UserName + "\\Info.txt", FileMode.Open);在MSDN上也有写此类型(Filestream)的存在是为了支持 windows phone 中的 .NET Compact Framework 基础结构,并不适用于应用程序代码。你们看是不是这个原因?
------解决方案--------------------
wp8肯定是支持FileStream的,闪退的原因可能是:
1,Stream未正常关闭。
2,文件不存在或路径不正确。

你的路径在本地与在商店时一致吗?
------解决方案--------------------
引用:
难道你写的不是独立存储???异常是什么,详细信息贴出来看看。

亲爱的版主,您好!
我也碰到过这样类似的问题。比如,我要写某个文件,绝对在文档允许的权限类。我Catch不到错误。他会运行完Catch后,报一个文件读写权限之类的错误。或者对象丢失错误。而且最可恨的是,一会儿又可能过了。在另外一个文件的位置报类似的错误。但是我将读写文件的代码放到x.xaml.cs文件之后,所有的问题都没有了。
很抱歉我把问题说的很含糊。但是现在真心碰不到了。
谅解,非常感谢。
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

难道你写的不是独立存储???异常是什么,详细信息贴出来看看。

嗯,直接FileStream了,异常是Access to the path '....' is denied

猜测是因为你用的相对路径引起的,这个FileStream是可以用的,但是用的范围仅仅局限于独立存储文件夹内的操作,出了这个文件夹范围是无权访问的。我在3楼给你说的用System.IO命名空间下的File时要用绝对路径就是这个原因。
因为如果它不限制在这个文件夹下的话,这个API就能绕过独立存储来访问任何文件了,系统的、其他应用的,这是绝对不允许的,故而仅限与独立存储文件夹下,它和独立存储的IO相关API是一样的效果,只是提供这么两套API而已。或许你的错误是访问了独立存储之外的文件了?